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

38 lines
1.9 KiB
C++
Raw Normal View History

2014-04-08 06:51:53 +00:00
#pragma once
2011-03-03 19:57:34 +00:00
#include <mysqlxx/ResultBase.h>
#include <mysqlxx/Row.h>
namespace mysqlxx
{
class Connection;
2011-03-18 20:26:54 +00:00
/** Результат выполнения запроса, предназначенный для чтения строк, одна за другой.
* В памяти при этом хранится только одна, текущая строка.
* В отличие от StoreQueryResult, произвольный доступ к строкам невозможен,
* а также, при чтении следующей строки, предыдущая становится некорректной.
* Вы обязаны прочитать все строки из результата
* (вызывать функцию fetch(), пока она не вернёт значение, преобразующееся к false),
* иначе при следующем запросе будет выкинуто исключение с текстом "Commands out of sync".
* Объект содержит ссылку на Connection.
* Если уничтожить Connection, то объект становится некорректным и все строки результата - тоже.
* Если задать следующий запрос в соединении, то объект и все строки тоже становятся некорректными.
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 UseQueryResult : public ResultBase
{
public:
2011-03-18 20:26:54 +00:00
UseQueryResult(MYSQL_RES * res_, Connection * conn_, const Query * query_);
2011-03-15 20:56:42 +00:00
Row fetch();
/// Для совместимости
Row fetch_row() { return fetch(); }
2011-03-03 19:57:34 +00:00
};
}