ClickHouse/libs/libmysqlxx/include/mysqlxx/ResultBase.h

49 lines
1.2 KiB
C
Raw Normal View History

2011-03-03 19:57:34 +00:00
#ifndef MYSQLXX_RESULTBASE_H
#define MYSQLXX_RESULTBASE_H
#include <boost/noncopyable.hpp>
#include <mysqlxx/Types.h>
namespace mysqlxx
{
class Connection;
2011-03-18 20:26:54 +00:00
class Query;
2011-03-03 19:57:34 +00:00
2011-03-18 20:26:54 +00:00
/** Базовый класс для UseQueryResult и StoreQueryResult.
* Содержит общую часть реализации,
* Ссылается на Connection. Если уничтожить Connection, то пользоваться ResultBase и любым результатом нельзя.
2011-04-28 20:23:56 +00:00
* Использовать объект можно только для результата одного запроса!
* (При попытке присвоить объекту результат следующего запроса - UB.)
2011-03-18 20:26:54 +00:00
*/
2011-03-03 19:57:34 +00:00
class ResultBase
{
public:
2011-03-18 20:26:54 +00:00
ResultBase(MYSQL_RES * res_, Connection * conn_, const Query * query_);
2011-03-03 19:57:34 +00:00
2011-03-09 20:11:29 +00:00
Connection * getConnection() { return conn; }
2011-03-03 19:57:34 +00:00
MYSQL_FIELDS getFields() { return fields; }
unsigned getNumFields() { return num_fields; }
2011-03-09 20:11:29 +00:00
MYSQL_RES * getRes() { return res; }
2011-03-18 20:26:54 +00:00
const Query * getQuery() const { return query; }
2011-03-03 19:57:34 +00:00
2011-03-15 20:56:42 +00:00
virtual ~ResultBase()
{
mysql_free_result(res);
}
2011-03-03 19:57:34 +00:00
protected:
2011-03-09 20:11:29 +00:00
MYSQL_RES * res;
Connection * conn;
2011-03-18 20:26:54 +00:00
const Query * query;
2011-03-03 19:57:34 +00:00
MYSQL_FIELDS fields;
unsigned num_fields;
};
}
#endif