1#pragma once
2
3#include <boost/noncopyable.hpp>
4#include <mysqlxx/Types.h>
5
6
7namespace mysqlxx
8{
9
10class Connection;
11class Query;
12
13
14/** Базовый класс для UseQueryResult и StoreQueryResult.
15 * Содержит общую часть реализации,
16 * Ссылается на Connection. Если уничтожить Connection, то пользоваться ResultBase и любым результатом нельзя.
17 * Использовать объект можно только для результата одного запроса!
18 * (При попытке присвоить объекту результат следующего запроса - UB.)
19 */
20class ResultBase
21{
22public:
23 ResultBase(MYSQL_RES * res_, Connection * conn_, const Query * query_);
24
25 Connection * getConnection() { return conn; }
26 MYSQL_FIELDS getFields() { return fields; }
27 unsigned getNumFields() { return num_fields; }
28 MYSQL_RES * getRes() { return res; }
29 const Query * getQuery() const { return query; }
30
31 virtual ~ResultBase();
32
33protected:
34 MYSQL_RES * res;
35 Connection * conn;
36 const Query * query;
37 MYSQL_FIELDS fields;
38 unsigned num_fields;
39};
40
41}
42