From OpenSCADAWiki
Jump to: navigation, search

Интерфейс OpenSCADA для обслуживания запросов к БД представлен объектами и виртуальными функциями вызовов из ядра OpenSCADA:

  • TTypeBD->TModule — Корневой объект модуля подсистемы "БД":
    • TBD *openBD( const string &id ); — Вызывается при открытии или создании нового объекта БД с идентификатором id данным модулем.
  • TBD — Объект базы данных:
    • void enable( ); — Включение БД.
    • void disable( ); — Отключение БД.
    • void load_( ); — Загрузка БД из общего хранилища конфигурации.
    • void save_( ); — Сохранение БД в общем хранилище конфигурации.
    • void allowList( vector<string> &list ); — Запрос перечня list таблиц в БД.
    • void sqlReq( const string &req, vector< vector<string> > *tbl = NULL, char intoTrans = EVAL_BOOL ); — Обработка SQL-запроса req к БД и получение результата в виде таблицы tbl, если запрос выборки и указатель ненулевой. При установке intoTrans в "true" для запроса должна быть открыта транзакция, в "false" закрыта. Данная функция должна реализоваться для СУБД, поддерживающих SQL-запросы.
    • void transCloseCheck( ); — Периодически вызываемая функция для проверки транзакций и закрытия старых или содержащих много запросов.
    • TTable *openTable( const string &table, bool create ); — Вызывается при открытии или создании нового объекта таблицы.
  • TTable — Объект таблицы в базе данных:
    • void fieldStruct( TConfig &cfg ); — Получение текущей структуры таблицы в объекте TConfig.
    • bool fieldSeek( int row, TConfig &cfg, vector< vector<string> > *full = NULL ); — Последовательное сканирование записей таблицы перебором row и возврат "false" по окончанию с адресацией по активным, keyUse(), ключевым полям. full определяется перед запросом, для предзагрузки полного ответа, с извлечением последующих записей отсюда.
    • void fieldGet( TConfig &cfg ); — Запрос указанной в объекте TConfig записи с адресацией по ключевым полям.
    • void fieldSet( TConfig &cfg ); — Передача указанной в объекте TConfig записи с адресацией по ключевым полям.
    • void fieldDel( TConfig &cfg ); — Удаление указанной записи по ключевым полям объекта TConfig.