OpenSCADAWiki: Doc/DBF ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/DBF from 2017-06-27 16:00:13..

Ìîäóëü <DBF> ïîäñèñòåìû "ÁÄ"

Ìîäóëü: DBF
Èìÿ: ÁÄ DBF
Òèï: ÁÄ
Èñòî÷íèê: bd_DBF.so
Âåðñèÿ: 2.2
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñàíèå: Ìîäóëü ÁÄ. Ïðåäîñòàâëÿåò ïîääåðæêó *.dbf ôàéëîâ, âåðñèè 3.0.
Ëèöåíçèÿ: GPL

Contents

Ââåäåíèå

Ìîäóëü ïðåäíàçíà÷åí äëÿ ïðåäîñòàâëåíèå â ñèñòåìó OpenSCADA ïîääåðæêè ôàéëîâ ÁÄ òèïà *.dbf. Ìîäóëü îñíîâàí íà áèáëèîòåêå äëÿ ðàáîòû ñ dbf ôàéëàìè ÏÎ "Complex2" ôèðìû ÍÈÏ "ÄIß". Ìîäóëü ïîçâîëÿåò âûïîëíÿòü äåéñòâèÿ íàä áàçàìè äàííûõ, òàáëèöàìè è ñîäåðæèìûì òàáëèö.

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

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


Ïîä ÁÄ, â ñëó÷àå ñ dbf-ôàéëàìè, ïîäðàçóìåâàåòñÿ äèðåêòîðèÿ, ñîäåðæàùàÿ dbf-ôàéëû. Ñëåäîâàòåëüíî, îïåðàöèè ñîçäàíèÿ è óäàëåíèÿ ÁÄ - ñîçäàþò è óäàëÿþò äèðåêòîðèè, ãäå òàáëèöû (dbf-ôàéëû) õðàíÿòñÿ.  ðîëè àäðåñà ÁÄ âûñòóïàåò ïîëíîå èìÿ äèðåêòîðèè ñ dbf-ôàéëàìè. Äîñòóï ê ÁÄ îïðåäåëÿåòñÿ ñèñòåìíûìè ïðàâàìè äîñòóïà ê äèðåêòîðèè.

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

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


Ñîáñòâåííî dbf-ôàéë è ÿâëÿåòñÿ òàáëèöåé. Ñîçäàíèå è óäàëåíèÿ òàáëèöû ïîäðàçóìåâàåò ñîçäàíèå è óäàëåíèå dbf-ôàéëà. Èìÿ òàáëèöû ïðåäñòàâëÿåò ñîáîé èìÿ dbf-ôàéëà â äèðåêòîðèè ÁÄ. Ïðàâà äîñòóïà ê òàáëèöå îïðåäåëÿþòñÿ ïðàâàìè äîñòóïà ê dbf-ôàéëó.

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


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


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


Ïðè äîñòóïå ê çíà÷åíèÿì òàáëèö èñïîëüçóåòñÿ ñèíõðîíèçàöèÿ ïóò¸ì çàõâàòà ðåñóðñà íà äîñòóï ê òàáëèöå. Ýòî ïîçâîëÿåò èçáåæàòü ðàçðóøåíèÿ äàííûõ â ñëó÷àå ìíîãîïîòî÷íîãî äîñòóïà!


Òèïû ýëåìåíòîâ dbf-ôàéëîâ ñëåäóþùèì îáðàçîì ñîîòâåòñòâóþò òèïàì ýëåìåíòîâ ñèñòåìû OpenSCADA:

Òèïû ïîëåé ñèñòåìû OpenSCADAÒèï ïîëÿ dbf-ôàéëà
TFld::String "Ñ"
TFld::Integer, TFld::Real "N"
TFld::Boolean "L"

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

Çàìåð ïðîèçâîäèòåëüíîñòè ÁÄ âûïîëíÿëñÿ òåñòîì "ÁÄ", ìîäóëÿ ñèñòåìíûõ òåñòîâ "SystemTests" ïóò¸ì âûïîëíåíèÿ îïåðàöèé íàä çàïèñÿìè ñòðóêòóðîé: <name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string>.
Action source page doesn't exist yet(/Home Page En / Doc / DBF?)

Ññûëêè

Referring pages: Doc
Function
Works/Tests/DB


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