From OpenSCADAWiki
Jump to: navigation, search

Інтерфейс 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.