Class mgr db::Connection

Материал из ISPWiki
Перейти к: навигация, поиск

Работа с базами данных

Класс mgr_db::Connection

Данный класс является абстрактным

Интерфейс подключения к базе данных

#include <mgrdb.h> 

Описание:

class mgr_db::Connection


Потомки:


Открытые члены (кратко)

Connection ()

Конструктор по умолчанию


virtual  ~Connection ()

Деструктор


QueryPtr Query ( const string & )

Выполняет запрос к базе данных, принимает строку запроса и возвращает объект запроса к БД


virtual string EscapeValue ( const string & )

Экранирует недопустимые для конкретной СУБД символы в переданной строке, оборачивает саму строку в символы "'".


virtual size_t FieldValueSize ( TableDesc::Field &fld , const string & )

Вычисляет размер поля, этот рамер сравнивается с fld.length.


virtual string ConcatValues ( const string & , const string & , const string &delim = "" )

Выполняет конкатенацию через разделитель


virtual string ForUpdate ( const string &query )

Добавить в запрос FOR UPDATE, если СУБД поддерживает данный механизм


virtual bool FixTable ( const TableDesc & )

Приводит таблицу БД в соответствие с переданным описанием


void Begin ()

Начинает транзакцию в текущем подключении к БД


void Commit ()

Фиксирует транзакцию в текущем подключении к БД


void Rollback ()

Откатывает транзакцию в текущем подключении к БД


int TransactionCount () const

Возвращает количество активных транзакций в текущем подключении


int QueryCount () const

Возвращает количество активных (незавершенных) запросов в текущем подключении


virtual string GetFieldsByErrorAboutEx ( const string & , const TableDesc & )

Возвращает список полей таблицы по описанию, возвращаемому при ошибке mgr_error::Exists запроса к БД


virtual bool IsAlive ()=0

Возвращает true, если подключение к БД еще активно, false в противном случае


bool CreateGlobalSearchIndex ()

Создает таблицу быстрого поиска

Выполнение параметризованного запроса к БД

Данные методы обеспечивают выполнение параметризованного запроса к БД и отличаются количеством и представлением параметров. При их выполнении выполнятеся подстановка параметров в параметризированную строку запроса в порядке указания. Параметры обозначаются в строке запроса символом "?" Возвращают объект запроса к БД

Защищённые члены (кратко)

virtual void BeginTransaction ()=0

Начинает транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании


virtual void CommitTransaction ()=0

Фиксирует транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании


virtual void RollbackTransaction ()=0

Откатывает транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании

Приватные члены (кратко)

Конструкторы

Connection ()

Конструктор по умолчанию

virtual ~Connection ()

Данная функция/метод является inline функцией

Деструктор

Методы

QueryPtr Query ( const string & )

Выполняет запрос к базе данных, принимает строку запроса и возвращает объект запроса к БД

virtual string EscapeValue ( const string & )

Экранирует недопустимые для конкретной СУБД символы в переданной строке, оборачивает саму строку в символы "'".

virtual size_t FieldValueSize ( TableDesc::Field &fld , const string & )

Вычисляет размер поля, этот рамер сравнивается с fld.length.

virtual string ConcatValues ( const string & , const string & , const string &delim = "" )

Выполняет конкатенацию через разделитель

virtual string ForUpdate ( const string &query )

Добавить в запрос FOR UPDATE, если СУБД поддерживает данный механизм

virtual bool FixTable ( const TableDesc & )

Приводит таблицу БД в соответствие с переданным описанием

Если в данном подключении имеется активная транзакция, данный метод выполнится в рамках этой транзакции, иначе данный метод создаст транзакцию и зафиксирует ее в случае успешного выполнения метода. Если указанная таблица не существует, она будет создана. Порядок полей в результирующей таблице не определяется. При изменении существующей таблицы:

  • никакие поля не удаляются, соответственно, данные, хранимые в этих полях таблицы остаются доступными.
  • не изменяются поля, входящие в первичный ключ, также не меняется состав первичного ключа.
  • если в новом описании не указаны индексы, первичные ключи или значения по умолчанию, существующие в таблице, они будут удалены

void Begin ()

Начинает транзакцию в текущем подключении к БД

void Commit ()

Фиксирует транзакцию в текущем подключении к БД

void Rollback ()

Откатывает транзакцию в текущем подключении к БД

int TransactionCount () const

Возвращает количество активных транзакций в текущем подключении

int QueryCount () const

Возвращает количество активных (незавершенных) запросов в текущем подключении

virtual string GetFieldsByErrorAboutEx ( const string & , const TableDesc & )

Возвращает список полей таблицы по описанию, возвращаемому при ошибке mgr_error::Exists запроса к БД

Возвращает список полей таблицы БД (разделенных знаком ","), которые содержат дублирующиеся значения. Используется, если запрос к БД завершился с исключением mgr_error::Exists, принимает значение исключения (value).

virtual bool IsAlive ()=0

Возвращает true, если подключение к БД еще активно, false в противном случае

bool CreateGlobalSearchIndex ()

Создает таблицу быстрого поиска

Returned: true - если таблица была успешно создана, false - если таблица уже существует
See also: GLOBAL_INDEX_TABLE

virtual void BeginTransaction ()=0

Данный метод является защищённым

Начинает транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании

virtual void CommitTransaction ()=0

Данный метод является защищённым

Фиксирует транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании

virtual void RollbackTransaction ()=0

Данный метод является защищённым

Откатывает транзакцию в текущем подключении к БД, СУБД-зависимая, переопределяется при наследовании