2014-04-08 06:51:53 +00:00
|
|
|
|
#pragma once
|
2011-03-03 19:57:34 +00:00
|
|
|
|
|
|
|
|
|
#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;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|