<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html class="client-nojs" dir="ltr" lang="en">
<head>
<meta charset="UTF-8" />
<title>Модулі/DBF - OpenSCADAWiki</title>
<meta content="MediaWiki 1.26.4" name="generator" />
<link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" />
<link href="../../en/files/doc.css" rel="stylesheet" /></head>
<body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header">
			<div class="mw-indicators">
</div>
			<h1 id="firstHeading" lang="uk">Модулі/DBF</h1>
		</div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="uk"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&amp;group=page-Modules%2FDBF&amp;action=page&amp;filter=&amp;language=uk" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/DBF" title="Modules/DBF">Modules/DBF</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/DBF.html" title="Modules/DBF (100% translated)">English</a>&nbsp;• ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../../ru/Modules/DBF.html" title="Модули/DBF (100% translated)">mRussian</a>&nbsp;• ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">Українська</span></div></div>
<table class="wikitable">

<tr>
<th> Модуль </th>
<th> Ім'я </th>
<th> Версія </th>
<th> Ліцензія </th>
<th> Джерело </th>
<th> Мови </th>
<th> Платформи </th>
<th> Тип </th>
<th> Автор </th>
<th> Опис
</th></tr>

<tr>
<td> <a href="../Modules/DBF.html" title="Special:MyLanguage/Modules/DBF">DBF</a> </td>
<td> БД DBF
<ul><li> <b><a href="../Program_manual.html#DBFeat" title="Special:MyLanguage/Documents/Program manual">Властивості</a>:</b> LIST, GET, SEEK, SET, DEL, FIX</li></ul>
</td>
<td> 2.4 </td>
<td> GPL2 </td>
<td> bd_DBF.so </td>
<td> en,uk,ru,de </td>
<td> x86,x86_64,ARM
</td>
<td> БД </td>
<td> Роман Савоченко </td>
<td> Модуль БД. Надає підтримку DBF файлів версії 3.0.
</td></tr></table>
<p>Модуль надає до OpenSCADA підтримку файлів БД типу DBF. Модуль засновано на бібліотеці для роботи з DBF файлами ПЗ "Complex2" фірми НІП "ДIЯ". Модуль дозволяє виконувати дії над базами даних, таблицями та вмістом таблиць.
</p>
<div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D0.91.D0.94"><span class="tocnumber">1</span> <span class="toctext">Операції над БД</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B5.D1.8E"><span class="tocnumber">2</span> <span class="toctext">Операції над таблицею</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D0.B2.D0.BC.D1.96.D1.81.D1.82.D0.BE.D0.BC_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.96"><span class="tocnumber">3</span> <span class="toctext">Операції над вмістом таблиці</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="#.D0.9F.D1.80.D0.BE.D0.B4.D1.83.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D1.96.D1.81.D1.82.D1.8C_.D0.91.D0.94"><span class="tocnumber">4</span> <span class="toctext">Продуктивність БД</span></a></li>
</ul>
</div>

<h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D0.91.D0.94"><span class="mw-headline-number">1</span> Операції над БД</span></h2>
<p>Підтримуються операції відкриття та закриття БД, з можливістю створення нової БД при відкритті та видалення існуючої при закритті. У термінах підсистеми "БД" OpenSCADA, відкриттям БД є її реєстрація для наступного використання програмою. Також, підтримується операція запиту переліку таблиць у БД.
</p><p>Під БД, у випадку з DBF-файлами, мається на увазі тека, яка містить DBF-файли. Відтак, операції створення та видалення БД створюють та видаляють теки, де таблиці (DBF-файли) зберігаються. У ролі адреси БД виступає повне ім'я теки з DBF-файлами. Доступ до БД визначається системними правами доступу до теки.
</p>
<h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B5.D1.8E"><span class="mw-headline-number">2</span> Операції над таблицею</span></h2>
<p>Підтримуються операції відкриття, закриття таблиці, з можливістю створення нової таблиці при відкритті та видалення існуючої при закриті.
</p><p>Власне, DBF-файл і є таблицею. Створення та видалення таблиці передбачає створення та видалення DBF-файлу. Ім'я таблиці представляє собою ім'я DBF-файлу у теці БД. Права доступу до таблиці визначаються правами доступу до DBF-файлу.
</p>
<h2><span class="mw-headline" id=".D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.86.D1.96.D1.97_.D0.BD.D0.B0.D0.B4_.D0.B2.D0.BC.D1.96.D1.81.D1.82.D0.BE.D0.BC_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.96"><span class="mw-headline-number">3</span> Операції над вмістом таблиці</span></h2>
<ul><li> сканування записів таблиці;</li>
<li> запит значень визначених записів;</li>
<li> встановлення значень визначених записів;</li>
<li> видалення записів.</li></ul>
<p>API підсистеми "БД" передбачає доступ до вмісту таблиці за значенням ключового(их) полів. Так, операція запиту запису передбачає попереднє встановлення ключових стовпчиків об'єкту TConfig, за яким буде здійснено запит. Створення нового запису(рядка) здійснюється операцією встановлення значень запису, який відсутній.
</p><p>Модуль дозволяє динамічно міняти структуру таблиць БД DBF. Так, у випадку невідповідності структури таблиці та структури запису що встановлюється, структуру таблиці буде приведено до потрібної структури запису. У випадку запиту значень запису та невідповідності структур запису і таблиці, буде отримано тільки значення загальних елементів запису та таблиці. Модуль не відстежує послідовності розташування елементів запису та структури таблиці!
</p><p>При доступі до значень таблиць використовується синхронізація шляхом захоплення ресурсу на доступ до таблиці. Це дозволяє запобігти руйнуванню даних у випадку багатопотокового доступу.
</p><p>Типи елементів БД DBF наступним чином відповідають типам елементів OpenSCADA:
</p>
<table class="wikitable">

<tr>
<th> Типи полів OpenSCADA </th>
<th> Типи полів DBF
</th></tr>
<tr>
<td> TFld::String </td>
<td> "С"
</td></tr>
<tr>
<td> TFld::Integer, TFld::Real </td>
<td> "N"
</td></tr>
<tr>
<td> TFld::Boolean </td>
<td> "L"
</td></tr></table>
<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.BE.D0.B4.D1.83.D0.BA.D1.82.D0.B8.D0.B2.D0.BD.D1.96.D1.81.D1.82.D1.8C_.D0.91.D0.94"><span class="mw-headline-number">4</span> Продуктивність БД</span></h2>
<p>Вимірювання продуктивності БД здійснювалося тестом "БД" модуля тестів "SystemTests", шляхом виконання операцій над записами структурою: "<b>name char (20), descr char (50), val double (10.2), id int (7), stat bool, reqKey string, reqVal string</b>".
</p>
<table class="wikitable">

<tr>
<th> Operations for 1000 records, seconds </th>
<th> K8-3000+,256M,120G </th>
<th> Nokia N800, SD 2G </th>
<th> Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD
</th></tr>
<tr>
<td> <i>Creating:</i>  </td>
<td> 1.07 </td>
<td> 37 </td>
<td> 0.382
</td></tr>
<tr>
<td> <i>Updating:</i> </td>
<td> 1.6 </td>
<td> 33.8 </td>
<td> 0.368
</td></tr>
<tr>
<td> <i>Getting:</i> </td>
<td> 1.0 </td>
<td> 34.32 </td>
<td> 0.362
</td></tr>
<tr>
<td> <i>Seeking:</i> </td>
<td> - </td>
<td> - </td>
<td> 0.064
</td></tr>
<tr>
<td> <i>Seeking in preload:</i> </td>
<td> - </td>
<td> - </td>
<td> 0.064
</td></tr>
<tr>
<td> <i>Deleting:</i> </td>
<td> 0.95 </td>
<td> 37 </td>
<td> 0.371
</td></tr></table>






</div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/DBF/uk">Modules/DBF/uk</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body>
</html>