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.