OpenSCADAWiki: Doc/SQ Lite ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/SQLite from 2015-04-18 09:25:39..


Ìîäóëü ïîäñèñòåìû “ÁÄ” <SQLite>


Ìîäóëü:SQLite
Èìÿ:ÁÄ SQLite
Òèï:ÁÄ
Èñòî÷íèê:bd_SQLite.so
Âåðñèÿ:1.6.4
Àâòîð:Ðîìàí Ñàâî÷åíêî
Îïèñàíèå:Ìîäóëü ÁÄ. Ïðåäîñòàâëÿåò ïîääåðæêó ÁÄ SQLite.
Ëèöåíçèÿ:GPL

Contents

Ââåäåíèå

Ìîäóëü <SQLite> ïðåäîñòàâëÿåò â ñèñòåìó OpenSCADA ïîääåðæêó ÁÄ SQLite. ÁÄ SQLite ÿâëÿåòñÿ íåáîëüøîé, âñòðàèâàåìîé ÁÄ ïîääåðæèâàþùåé SQL-çàïðîñû. ÁÄ SQLite ðàñïðîñòðàíÿåòñÿ ïî ñâîáîäíîé ëèöåíçèè. Îçíàêîìèòüñÿ ñ ÁÄ ìîæíî íà ñàéòå ÁÄ — http://sqlite.org. Ìîäóëü îñíîâàí íà áèáëèîòåêå C/ API ïðîèçâîäèòåëÿ ÁÄ. Ìîäóëü ïîçâîëÿåò âûïîëíÿòü äåéñòâèÿ íàä áàçàìè äàííûõ, òàáëèöàìè è ñîäåðæèìûì òàáëèö.

1. Îïåðàöèè íàä ÁÄ

Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ è çàêðûòèÿ ÁÄ, ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé ÁÄ ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè.  òåðìèíàõ ïîäñèñòåìû «ÁÄ», ñèñòåìû OpenSCADA, îòêðûòèåì ÁÄ ÿâëÿåòñÿ å¸ ðåãèñòðàöèÿ äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ â ñèñòåìå. Òàêæå, ïîääåðæèâàåòñÿ îïåðàöèÿ çàïðîñà ïåðå÷íÿ òàáëèö â ÁÄ.


ÁÄ SQLite àäðåñóåòñÿ ïóò¸ì óêàçàíèÿ èìåíè ôàéëà ÁÄ â ôîðìàòå: [<FileDBPath>]. Ãäå:


Ìîäóëü ïîääåðæèâàåò êîäèðîâàíèå äàííûõ â íóæíóþ êîäèðîâêó. Ñ ýòîé öåëüþ, äëÿ ÁÄ â öåëîì, ìîæíî óêàçàòü ðàáî÷óþ êîäèðîâêó. Â ïðîöåññå ðàáîòû áóäåò âûïîëíÿòüñÿ êîäèðîâàíèå äàííûõ, áàçû äàííûõ, èç êîäèðîâêè ÁÄ â ñèñòåìíóþ êîäèðîâêó OpenSCADA è îáðàòíî.

2. Îïåðàöèè íàä òàáëèöåé

Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ, çàêðûòèÿ òàáëèöû, ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé òàáëèöû ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè, à òàêæå çàïðîñ ñòðóêòóðû òàáëèöû.

3. Îïåðàöèè íàä ñîäåðæèìûì òàáëèöû


API ïîäñèñòåìû “ÁÄ” ïðåäïîëàãàåò äîñòóï ê ñîäåðæèìîìó òàáëèöû ïî çíà÷åíèþ êëþ÷åâîãî(ûõ) ïîëåé. Òàê, îïåðàöèÿ çàïðîñà çàïèñè ïîäðàçóìåâàåò ïðåäâàðèòåëüíóþ óñòàíîâêó êëþ÷åâûõ êîëîíîê îáúåêòà TConfig, ïî êîòîðûì áóäåò âûïîëíåí çàïðîñ. Ñîçäàíèå íîâîé çàïèñè(ñòðîêè) ïðîèçâîäèòñÿ îïåðàöèåé óñòàíîâêè çíà÷åíèé çàïèñè, êîòîðàÿ îòñóòñòâóåò.


Ìîäóëü ïîçâîëÿåò äèíàìè÷åñêè ìåíÿòü ñòðóêòóðó òàáëèö ÁÄ SQLite, ïóò¸ì ñîçäàíèÿ íîâîé ÁÄ ñ òðåáóåìîé ñòðóêòóðîé è êîïèðîâàíèå â íå¸ äàííûõ èç ñòàðîé. Òàê, â ñëó÷àå íåñîîòâåòñòâèÿ ñòðóêòóðû òàáëèöû è ñòðóêòóðû óñòàíàâëèâàåìîé çàïèñè, ñòðóêòóðà òàáëèöû áóäåò ïðèâåäåíà ê òðåáóåìîé ñòðóêòóðå çàïèñè.  ñëó÷àå çàïðîñà çíà÷åíèé çàïèñè è íå ñîîòâåòñòâèÿ ñòðóêòóð çàïèñè è òàáëèöû, áóäóò ïîëó÷åíû òîëüêî çíà÷åíèÿ îáùèõ ýëåìåíòîâ çàïèñè è òàáëèöû. Ìîäóëü íå îòñëåæèâàåò ïîðÿäêà ðàñïîëîæåíèÿ ýëåìåíòîâ çàïèñè è ñòðóêòóðû òàáëèöû!


Ìîäóëåì ðåàëèçóåòñÿ ìåõàíèçì ïîääåðæêè ìíîãîÿçûêîâûõ òåêñòîâûõ ïåðåìåííûõ. Äëÿ ïîëåé ñ ìíîãîÿçûêîâîé òåêñòîâîé ïåðåìåííîé ñîçäàþòñÿ êîëîíêè îòäåëüíûõ ÿçûêîâ â ôîðìàòå <lang>#<FldID> (en#NAME). Ïðè ýòîì áàçîâàÿ êîëîíêà ñîäåðæèò çíà÷åíèå äëÿ áàçîâîãî ÿçûêà. Êîëîíêè îòäåëüíûõ ÿçûêîâ ñîçäàþòñÿ ïî íàäîáíîñòè, â ìîìåíò ñîõðàíåíèÿ â ÁÄ è ïðè èñïîëíåíèè OpenSCADA â ñîîòâåòñòâóþùåé ëîêàëè.  ñëó÷àå îòñóòñòâèÿ çíà÷åíèÿ äëÿ êîíêðåòíîãî ÿçûêà áóäåò èñïîëüçîâàòüñÿ çíà÷åíèé äëÿ áàçîâîãî ÿçûêà.


Òèïû ýëåìåíòîâ ÁÄ SQLite ñëåäóþùèì îáðàçîì ñîîòâåòñòâóþò òèïàì ýëåìåíòîâ ñèñòåìû OpenSCADA:

Òèïû ïîëåé ñèñòåìû OpenSCADAÒèïû ïîëåé ÁÄ SQLite
TFld::StringTEXT
TFld::Integer, TFld::BooleanINTEGER
TFld::RealDOUBLE

4. Ïðàâà äîñòóïà

Ïðàâà äîñòóïà ê ÁÄ îïðåäåëÿþòñÿ ïðàâàìè äîñòóïà ê îòäåëüíî âçÿòîìó ôàéëó ÁÄ. Ìîäóëåì ïîääåðæèâàåòñÿ ðàáîòà ñ ôàéëàìè ÁÄ SQLite â ðåæèìå òîëüêî äëÿ ÷òåíèÿ, íàïðèìåð â äåìîíñòðàöèÿõ.

5. Ïðîèçâîäèòåëüíîñòü ÁÄ

Çàìåð ïðîèçâîäèòåëüíîñòè ÁÄ âûïîëíÿëñÿ òåñòîì «ÁÄ», ìîäóëÿ ñèñòåìíûõ òåñòîâ "SystemTests", ïóò¸ì âûïîëíåíèÿ îïåðàöèé íàä çàïèñÿìè ñòðóêòóðîé: <name char(20), descr char(50), val double(10.2), id int(7), stat bool>.

Îïåðàöèÿ Nokia N800, SD 2G AMD Turion L625 1.6, 2G, SQLite [3.7.6.2; 3.7.13]
Ñîçäàíèå 1000 çàïèñåé (ñåê.): 6.3 0.39; 0.49
Îáíîâëåíèå 1000 çàïèñåé (ñåê.): 6.3 0.43; 0.48
Ïîëó÷åíèå 1000 çàïèñåé (ñåê.): 4.5 0.31; 0.36
Óäàëåíèå 1000 çàïèñåé (ñåê.): 2.5 0.1; 0.08

Ññûëêè

Referring pages: Doc
Doc/OpenSCADA060
Function
Using/PLC/firmware
Works/Tests/DB


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]