Class mgr db::CustomTable

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

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

Класс mgr_db::CustomTable

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

#include <mgrdb_struct.h> 

Описание:

class mgr_db::CustomTable

Предоставляет методы для работы с таблицей БД

Warning: При изменении значений полей данные записиваются в таблицу БД только при вызове метода Post

Потомки:


Содержание

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

CustomTable ( const string & )

Конструктор, принимает имя таблицы


virtual  ~CustomTable ()

Деструктор


void DbDelete ( const string & )

Удаление из базы данных по переданному SQL-условию


void ClearCache ()

Очищает хранимый кэш записей


string RebuildGlobalIndex ()

Перестроить глобальный индекс по этой таблице, возвращает id созданного LongTask.


virtual void New ()

Создает новую запись в кэше


virtual bool CheckAccess ( int level , const string &id )

Проверить доступ к записи таблицы


void Clone ()

Создает новую запись в кэше, заполнив ее данными текущей записи


void Post ()

Если запись была изменена или создана, сохраняет данные из кэша в БД


void Delete ()

Удаляет запись из кэша и из БД


bool IsNew () const

Возвращает true, если текущая запись создана методом New и еще не сохранена в БД


string name () const

Возвращает имя таблицы


bool IsNull ( size_t id )

Возвращает true, если в поле с переденным номером содержится Null-значение, false в противном случае


bool IsChanged ( size_t id , TableDesc::Field * field_info = nullptr )

Возвращает true, если значение поля с переденным номером было изменено, но еще не зафиксированно вызовом метода Post()


bool Eof () const

Признак конца данных


string AsString ( size_t id )

Возвращает строковое представление данных поля по переданному номеру. Значение может быть преобразовано методом AsString соответствующего поля


string Get ( size_t id )

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


string OldValue ( size_t id )

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


void Set ( size_t id , const string & )

Устанавливает значение поля с переданным номером


void SetNull ( size_t id )

Устанавливает значение поля с переданным номером в Null.


Field * FieldByName ( const string &name )

Получает экземпляр объекта поля БД по его имени


const TableDesc & desc () const

Получает экземпляр объекта описания структуры таблицы БД

Поиск в базе данных по переданному SQL-условию

Формат набора условий соответствует SQL-условию, используемого в выражении SELECT после ключевого слова WHERE Возвращает true, если была найдена хотя бы одна строка в таблице базы данных, соответствующая переданному условию, false в противном случае Устанавливает значение полей таблицы в значения данных первой найденой строки таблицы БД

Поиск в базе данных по значениям ключевых полей

Значения ключевых полей передаются в виде списка значений, разделенных знаком "," в порядке, использованном при описании полей таблицы Возвращает true, если была найдена хотя бы одна строка в таблице базы данных, соответствующая переданному списку значений, false в противном случае Устанавливает значение полей таблицы в значения данных первой найденой строки таблицы БД

Устанавливает значение полей таблицы в значения данных строки, найденной по переданным ключевым полям

Значения ключевых полей передаются в виде списка значений, разделенных знаком "," в порядке, использованном при описании полей таблицы Устанавливает значение полей таблицы в значения данных первой найденой строки таблицы БД. Если строка не найдена - генерирует исключение

Методы добавления индексов в описание таблицы БД

Принимают тип индекса и ссылки на объекты кэшированных полей БД, которые будут входить в индекс

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

virtual void OnCreateTable ()

Выполняет необходимые действия при создании таблицы в базе данных


virtual void OnAfterPost ()

Вызывается после того, как запрос на изменение/добавление записи к базе уже выполнен


virtual void OnAfterDelete ()

Вызывается после того, как выполнен запрос на удаление записи


virtual void OnBeforePost ()

Вызывается до того, как запрос на изменение/добавление записи к базе уже выполнен


virtual void OnBeforeDelete ()

Вызывается до того, как выполнен запрос на удаление записи

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

virtual string KeysCondition ()

Формирует строку SQL-условия на основании данных о существующих ключевых полях кэшированной таблицы и их текущих значениях


virtual string KeysCondition ( const string &key )

Формирует строку SQL-условия для переданных полей, на основании данных об их текущих значениях

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

CustomTable ( const string & )

Конструктор, принимает имя таблицы

virtual ~CustomTable ()

Деструктор

Методы

void DbDelete ( const string & )

Удаление из базы данных по переданному SQL-условию

Формат набора условий соответствует SQL-условию, используемого в выражении SELECT после ключевого слова WHERE По сути, вызов метода аналогичен выполнению соответствующего SQL-запроса с последующим выполнением ClearCache

See also: ClearCache

void ClearCache ()

Очищает хранимый кэш записей

string RebuildGlobalIndex ()

Перестроить глобальный индекс по этой таблице, возвращает id созданного LongTask.

virtual void New ()

Создает новую запись в кэше

virtual bool CheckAccess ( int level , const string &id )

Проверить доступ к записи таблицы

Данный метод должен определить имеет ли указанный ползователь доступ к текущей записи. Какие именно данные передавать в параметрах level и id оставлено на усмотрение разработчика. По умолчанию всегда вовращает true

Аргументы:
[level] уровень доступа
[id] идентификатор пользователя. Это может быть его имя или номер записи в базе
Returned: true, если пользователь может получить доступ к текущей записи

void Clone ()

Создает новую запись в кэше, заполнив ее данными текущей записи

void Post ()

Если запись была изменена или создана, сохраняет данные из кэша в БД

void Delete ()

Удаляет запись из кэша и из БД

bool IsNew () const

Возвращает true, если текущая запись создана методом New и еще не сохранена в БД

string name () const

Возвращает имя таблицы

bool IsNull ( size_t id )

Возвращает true, если в поле с переденным номером содержится Null-значение, false в противном случае

bool IsChanged ( size_t id , TableDesc::Field * field_info = nullptr )

Возвращает true, если значение поля с переденным номером было изменено, но еще не зафиксированно вызовом метода Post()

Принимает вторым параметром указатель на описание поля. Данное описание используется для оптимизации поиска по списку описаний полей, хранимых внутри данного класса (если этот параметр указан, поиск не выполняется)

bool Eof () const

Признак конца данных

string AsString ( size_t id )

Возвращает строковое представление данных поля по переданному номеру. Значение может быть преобразовано методом AsString соответствующего поля

string Get ( size_t id )

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

string OldValue ( size_t id )

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

Таким образом можно узнать предыдущее значение поля при его редактировании. Данная информация становится недоступна после вызова методов Post, New, Find или DbFind. Возвращает пустую строку для записей созданых методом New или Clone.

void Set ( size_t id , const string & )

Устанавливает значение поля с переданным номером

void SetNull ( size_t id )

Устанавливает значение поля с переданным номером в Null.

Field * FieldByName ( const string &name )

Получает экземпляр объекта поля БД по его имени

const TableDesc &desc () const

Получает экземпляр объекта описания структуры таблицы БД

virtual string KeysCondition ()

Данный метод является приватным

Формирует строку SQL-условия на основании данных о существующих ключевых полях кэшированной таблицы и их текущих значениях

Формат набора условий соответствует SQL-условию, используемого в выражении SELECT после ключевого слова WHERE

virtual string KeysCondition ( const string &key )

Данный метод является приватным

Формирует строку SQL-условия для переданных полей, на основании данных об их текущих значениях

Список полей задается в виде списка имен полей, разделенных знаком "," Формат набора условий соответствует SQL-условию, используемого в выражении SELECT после ключевого слова WHERE

virtual void OnCreateTable ()

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

Выполняет необходимые действия при создании таблицы в базе данных

По умолчанию, после создания таблицы, выполняет запросы из файла etc/sql/[<имя="" клиента>="">.]<имя="" таблицы>="">.sql

virtual void OnAfterPost ()

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

Вызывается после того, как запрос на изменение/добавление записи к базе уже выполнен

virtual void OnAfterDelete ()

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

Вызывается после того, как выполнен запрос на удаление записи

virtual void OnBeforePost ()

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

Вызывается до того, как запрос на изменение/добавление записи к базе уже выполнен

virtual void OnBeforeDelete ()

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

Вызывается до того, как выполнен запрос на удаление записи