From OpenSCADAWiki
Інтерфейс OpenSCADA із обслуговування запитів до БД представлено об'єктами та віртуальними функціями виклику із ядра OpenSCADA:
- TTypeBD->TModule — кореневий об'єкт модуля підсистеми "БД":
- string features( ); — перелік ключових слів підтримуваних властивостей БД.
- int lsPr( ); — базовий приорітет БД [0...9] у загальному переліку сховків.
- TBD *openBD( const string &id ); — викликається при відкритті або створені нового об'єкта БД даним модулем з ідентифікатором id.
- TBD — об'єкт бази даних:
- void enable( ); — включення БД.
- void disable( ); — відключення БД.
- void allowList( vector<string> &list ) const; — запит переліку 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 &name, bool create ); — викликається при відкритті або створені нового об'єкта таблиці.
- TTable — об'єкт таблиці у базі даних:
- void fieldStruct( TConfig &cfg ); — отримання поточної структури таблиці у об'єкті cfg.
- bool fieldSeek( int row, TConfig &cfg, const string &cacheKey = "" ); — послідовне сканування записів таблиці перебором row за об'єктом cfg та повернення "false" по закінченню, з адресацією за активними keyUse() ключовими полями. Ключ кешу cacheKey вказується для предзавантаженням повної відповіді до кешу, із витягненням наступних записів звідти.
- void fieldGet( TConfig &cfg ); — запит вказаного у об'єкті cfg запису із адресацією за ключовими полями.
- void fieldSet( TConfig &cfg ); — передача вказаного у об'єкті cfg запису з адресацією за ключовими полями.
- void fieldDel( TConfig &cfg ); — видалення вказаного запису за ключовими полями об'єкту cfg.
- Специфічне для SQL Баз Даних
- void fieldFix( TConfig &cfg, const string &langLs = "" ); — виправлення структури таблиці БД до cfg та для мов перекладу langLs, зазвичай після невдалого запису.
- string getSQLVal( TCfg &cf, uint8_t RqFlg = 0 ); — повернення специфічно до SQL обгорненого значення cf для прапорців ReqFlg звернення RqFlg.
- void setSQLVal( TCfg &cf, const string &vl, bool tr = false ); — розбір SQL-значення vl для перекладу tr та із записом до cf.