Ìîäóëü: | DBF |
Èìÿ: | ÁÄ DBF |
Òèï: | ÁÄ |
Èñòî÷íèê: | bd_DBF.so |
Âåðñèÿ: | 2.2 |
Àâòîð: | Ðîìàí Ñàâî÷åíêî |
Îïèñàíèå: | Ìîäóëü ÁÄ. Ïðåäîñòàâëÿåò ïîääåðæêó *.dbf ôàéëîâ, âåðñèè 3.0. |
Ëèöåíçèÿ: | GPL |
Ìîäóëü ïðåäíàçíà÷åí äëÿ ïðåäîñòàâëåíèå â ñèñòåìó OpenSCADA ïîääåðæêè ôàéëîâ ÁÄ òèïà *.dbf. Ìîäóëü îñíîâàí íà áèáëèîòåêå äëÿ ðàáîòû ñ dbf ôàéëàìè ÏÎ "Complex2" ôèðìû ÍÈÏ "ÄIß". Ìîäóëü ïîçâîëÿåò âûïîëíÿòü äåéñòâèÿ íàä áàçàìè äàííûõ, òàáëèöàìè è ñîäåðæèìûì òàáëèö.
Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ è çàêðûòèÿ ÁÄ ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé ÁÄ ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè.  òåðìèíàõ ïîäñèñòåìû "ÁÄ" ñèñòåìû OpenSCADA îòêðûòèåì ÁÄ ÿâëÿåòñÿ å¸ ðåãèñòðàöèÿ äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ â ñèñòåìå.
Ïîä ÁÄ, â ñëó÷àå ñ dbf-ôàéëàìè, ïîäðàçóìåâàåòñÿ äèðåêòîðèÿ, ñîäåðæàùàÿ dbf-ôàéëû. Ñëåäîâàòåëüíî, îïåðàöèè ñîçäàíèÿ è óäàëåíèÿ ÁÄ - ñîçäàþò è óäàëÿþò äèðåêòîðèè, ãäå òàáëèöû (dbf-ôàéëû) õðàíÿòñÿ.  ðîëè àäðåñà ÁÄ âûñòóïàåò ïîëíîå èìÿ äèðåêòîðèè ñ dbf-ôàéëàìè. Äîñòóï ê ÁÄ îïðåäåëÿåòñÿ ñèñòåìíûìè ïðàâàìè äîñòóïà ê äèðåêòîðèè.
Ïîääåðæèâàþòñÿ îïåðàöèè îòêðûòèÿ è çàêðûòèÿ òàáëèöû ñ âîçìîæíîñòüþ ñîçäàíèÿ íîâîé òàáëèöû ïðè îòêðûòèè è óäàëåíèÿ ñóùåñòâóþùåé ïðè çàêðûòèè.
Ñîáñòâåííî dbf-ôàéë è ÿâëÿåòñÿ òàáëèöåé. Ñîçäàíèå è óäàëåíèÿ òàáëèöû ïîäðàçóìåâàåò ñîçäàíèå è óäàëåíèå dbf-ôàéëà. Èìÿ òàáëèöû ïðåäñòàâëÿåò ñîáîé èìÿ dbf-ôàéëà â äèðåêòîðèè ÁÄ. Ïðàâà äîñòóïà ê òàáëèöå îïðåäåëÿþòñÿ ïðàâàìè äîñòóïà ê dbf-ôàéëó.
API ïîäñèñòåìû “ÁÄ” ïðåäïîëàãàåò äîñòóï ê ñîäåðæèìîìó òàáëèöû ïî çíà÷åíèþ êëþ÷åâîãî(ûõ) ïîëÿ(åé). Òàê, îïåðàöèÿ çàïðîñà çàïèñè ïîäðàçóìåâàåò ïðåäâàðèòåëüíóþ óñòàíîâêó êëþ÷åâûõ êîëîíîê îáúåêòà TConfig, ïî êîòîðûì è áóäåò âûïîëíåí çàïðîñ. Ñîçäàíèå íîâîé çàïèñè(ñòðîêè) ïðîèçâîäèòñÿ îïåðàöèåé óñòàíîâêè çíà÷åíèé çàïèñè, êîòîðàÿ îòñóòñòâóåò.
Ìîäóëü ïîçâîëÿåò äèíàìè÷åñêè ìåíÿòü ñòðóêòóðó òàáëèö ÁÄ DBF. Òàê, â ñëó÷àå íåñîîòâåòñòâèÿ ñòðóêòóðû òàáëèöû è ñòðóêòóðû óñòàíàâëèâàåìîé çàïèñè ñòðóêòóðà òàáëèöû áóäåò ïðèâåäåíà ê òðåáóåìîé ñòðóêòóðå çàïèñè.  ñëó÷àå çàïðîñà çíà÷åíèé çàïèñè è íåñîîòâåòñòâèÿ ñòðóêòóð çàïèñè è òàáëèöû áóäóò ïîëó÷åíû òîëüêî çíà÷åíèÿ îáùèõ ýëåìåíòîâ çàïèñè è òàáëèöû. Ìîäóëü íå îòñëåæèâàåò ïîðÿäêà ðàñïîëîæåíèÿ ýëåìåíòîâ â çàïèñè è ñòðóêòóðå òàáëèöû!
Ïðè äîñòóïå ê çíà÷åíèÿì òàáëèö èñïîëüçóåòñÿ ñèíõðîíèçàöèÿ ïóò¸ì çàõâàòà ðåñóðñà íà äîñòóï ê òàáëèöå. Ýòî ïîçâîëÿåò èçáåæàòü ðàçðóøåíèÿ äàííûõ â ñëó÷àå ìíîãîïîòî÷íîãî äîñòóïà!
Òèïû ýëåìåíòîâ dbf-ôàéëîâ ñëåäóþùèì îáðàçîì ñîîòâåòñòâóþò òèïàì ýëåìåíòîâ ñèñòåìû OpenSCADA:
Òèïû ïîëåé ñèñòåìû OpenSCADA | Òèï ïîëÿ dbf-ôàéëà |
TFld::String | "Ñ" |
TFld::Integer, TFld::Real | "N" |
TFld::Boolean | "L" |
Çàìåð ïðîèçâîäèòåëüíîñòè ÁÄ âûïîëíÿëñÿ òåñòîì "ÁÄ", ìîäóëÿ ñèñòåìíûõ òåñòîâ "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?)