OpenSCADAWiki: Doc/ Fire Bird ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/FireBird from 2015-06-04 08:23:34..


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


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

Contents

Ââåäåíèå

Ìîäóëü FireBird ïðåäîñòàâëÿåò â ñèñòåìó OpenSCADA ïîääåðæêó ÁÄ FireBird è InterBase. ÁÄ FireBird ÿâëÿåòñÿ íåáîëüøîé âñòðàèâàåìîé ÁÄ ñ ôóíêöèÿìè ñåòåâîé ÁÄ, ïîääåðæèâàþùåé SQL-çàïðîñû. ÁÄ FireBird ïîñòðîåíà íà îñíîâå êîììåð÷åñêîé ÑÓÁÄ Interbase è ðàñïðîñòðàíÿåòñÿ ïî ñâîáîäíîé ëèöåíçèè. Îçíàêîìèòüñÿ ñ ÁÄ ìîæíî íà ñàéòå ÁÄ — http://www.firebirdsql.org. Ìîäóëü îñíîâàí íà áèáëèîòåêå C/ API ïðîèçâîäèòåëÿ ÁÄ. Ìîäóëü ïîçâîëÿåò âûïîëíÿòü äåéñòâèÿ íàä áàçàìè äàííûõ, òàáëèöàìè è ñîäåðæèìûì òàáëèö.

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

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


ÁÄ FireBird àäðåñóåòñÿ ïóò¸ì óêàçàíèÿ èìåíè ôàéëà ÁÄ, ïîëüçîâàòåëÿ è ïàðîëÿ.  îáùåì àäðåñ ÁÄ çàïèñûâàåòñÿ òàêèì îáðàçîì: "{file};{user};{pass}[;{conTm}]".
Ãäå:


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

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

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

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


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


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


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


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

Òèïû ïîëåé ñèñòåìû OpenSCADAÒèïû ïîëåé ÁÄ FireBird
TFld::StringVARCHAR, BLOB SUBTYPE TEXT
TFld::IntegerINTEGER
TFld::RealDOUBLE
TFld::BooleanSMALLINT

4. Äîñòóï ê ÁÄ

Ïðàâà äîñòóïà ê ÁÄ îïðåäåëÿþòñÿ ïðàâàìè ôàéëà ÁÄ.


Êðàòêî ðàññìîòðèì ïðîöåäóðó ïåðâè÷íîé íàñòðîéêè ñåðâåðà FireBird ñ öåëüþ ïîäêëþ÷åíèÿ ê íåìó ñ ïîìîùüþ äàííîãî ìîäóëÿ:

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

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

Îïåðàöèÿ AMD Turion L625 1.6, 2G, FireBird 2.1.3 [Local SuperServer; 100Base-TX];
2.5.2 [100Base-TX SuperServer ForcedWrites=Off(async); ForcedWrites=On(sync)]
Ñîçäàíèå 1000 çàïèñåé (ñåê.): [0.93; 1.15]; [2.29; 3.04]
Îáíîâëåíèå 1000 çàïèñåé (ñåê.): [2.74; 2.94]; [2.57; 3.0]
Ïîëó÷åíèå 1000 çàïèñåé (ñåê.): [1.64; 2.22]; [2.37; 25.7]
Óäàëåíèå 1000 çàïèñåé (ñåê.): [0.65; 1.04]; [1.03; 1.2]

6. Çàìå÷àíèÿ

ÑÓÁÄ FireBird èìååò ìíîãî àðõèòåêòóðíûõ îãðàíè÷åíèé è ïðîáëåì â âèäó íàñëåäñòâåííîñòè InterBase è ðîäèòåëüñêîé ÎÑ MS Windows êîòîðûå ïðåïÿòñòâóþò å¸ øèðîêîìó èñïîëüçîâàíèþ äëÿ ìíîãèõ çàäà÷. Èçâåñòíûå ïðîáëåìû:

Ññûëêè

Referring pages: Doc
Doc/OpenSCADA060
Function
Works/Tests/DB


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