Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
![]() | |
| |
![]()
. . . . . . . .
Модуль
![]() | |||
|
| ||
Рис. 11.2. Схема процесу створення exe-файлу
11.1.3. Схема взаємодії програми Delphi із БД
Прикладна програма БД, створена в Delphi (і не тільки в Delphi), взаємодіє з БД через посередника – процесор БД BDE (Borland DataBase Endgine). BDE реалізує всі операції безпосереднього доступу до даних і керування даними. BDE являє собою набір DLL-бібліотек, що містять процедури і функції низькорівневого доступу до даних. На Рис. 11.3 зображена узагальнена схема взаємодії прикладної програми з локальними і віддаленими БД.
Коли програмі Delphi потрібно зв'язатися з БД, вона звертається до BDE і повідомляє йому псевдонім (зареєстроване ім'я) БД і ім'я потрібної таблиці. Псевдонім крім імені БД містить також інформацію про тип драйвера, що повинний використовуватися з цієї БД. Драйвер – це допоміжна програма, що реалізує операції доступу до даних конкретної СУБД, вона як би “знає”, як звертатися до інформації БД цього типу. У BDE маються власні драйвери для найбільш розповсюджених СУБД: Paradox, dBase, FoxPro, Access.
Якщо в BDE є власний драйвер для даної СУБД, BDE відразу використовуючи його зв'язується з БД і потрібною таблицею в ній, обробляє запит користувача, і повертає в прикладну програму результати обробки.
Якщо в BDE власного драйвера для потрібної СУБД немає, то можна використовувати драйвери ODBC (Open DataBase Connectivity – відкритий інтерфейс підключення до БД). ODBC – це також бібліотека DLL, по функціях подібна BDE, але розроблена MicroSoft. У ODBC MicroSoft включила драйвери для доступу практично до будь-яких відомих у даний час СУБД (SyBase, MS SQL Server, Oracle, InterBase і ін.). Завдяки цьому і програми Delphi можуть працювати з БД цих СУБД через драйвери ODBC.
У Delphi 7 і наступних версіях введені альтернативні BDE можливості роботи з БД – це технологія ADO (Active Data Objects). ADO надає інтерфейс користувача до будь-яких типів даних, включаючи реляційні і не реляційні БД, електронну пошту, системні, текстові і графічні дані. Зв'язок з даними здійснюється за допомогою технології OLE DB.
У Delphi 6 альтернативні можливості доступу до БД розширені за рахунок технології dbExpress. Це набір драйверів, що забезпечують доступ до серверів SQL на основі єдиного інтерфейсу.
Однак, зараз використання BDE поки все-таки залишається основним і найбільш розповсюдженим засобом для доступу прикладних програм до БД.
Разом з BDE поставляється спеціальна програма-утиліта BDE Administrator, за допомогою якої можна переглядати, редагувати і створювати нові псевдоніми БД.
Звичайно програма BDE Administrator включається в папку “Панель керування”
![]() |
Рис. 11.3. Загальна схема взаємодії програми Delphi з БД
11.2. Основні компоненти Delphi для роботи з БД
Як ми вже знаємо, будь-яка прикладна програма Delphi будується на основі використання тих чи інших компонентів. Програма БД використовує спеціальні компоненти, призначені для роботи з БД. Серед них є як не візуальні, так і візуальні компоненти. Не візуальні компоненти призначені для забезпечення доступу до даних і витягу з БД інформації, що потім може оброблятися прикладною програмою і відображатися у візуальних компонентах.
|
![]() |
Рис.
11.4. Компоненти Delphi для роботи з БД
Розглянемо призначення найбільш важливих класів компонентів, призначених для роботи з БД.
Модуль даних. Для розміщення компонентів доступу до даних у додатку баз даних бажано використовувати спеціальну "форму" — модуль даних (клас TDataModule).
Модуль даних не має нічого загального зі звичайною формою додатка, адже його безпосереднім предком є клас TComponent.
У модулі даних можна розміщати тільки невізуальні компоненти. Модуль даних доступний розроблювачеві, як і будь-який інший модуль проекту, на етапі розробки. Користувач додатка не може побачити модуль даних під час виконання.
Для створення модуля даних можна скористатися палітрою об'єктів або головним меню Delphi. Значок модуля даних Data Module розташований на сторінці New.
Модуль даних має мало загального зі стандартною формою, хоча б тому, що клас TDataModule відбувається безпосередньо від класу TComponent. У нього майже цілком відсутні властивості і методи-оброблювачі подій, адже від платформи для інших невізуальних компонентів майже нічого не потрібно, хоча нащадки модуля даних, що працюють у розподілених додатках, виконують досить важливу роботу.
Для створення структури (моделі, діаграми) даних, з яким працює додаток, можна скористатися можливостями, наданими сторінкою Diagram Редактори коду.
Любою елемент з ієрархічного дерева компонентів модуля даних можна перенести на сторінку діаграми і задати зв'язку між ними. За допомогою керуючих кнопок можна задавати між елементами діаграми відносини синхронного перегляду і головний/підлеглий. При цьому виробляється автоматичне настроювання властивостей відповідних компонентів. Для звертання компонентів доступу до даних, розташованим у модулі даних, з інших модулів проекту необхідно включити ім'я модуля в секцію uses:
unit InterfaceModule;
...
implementation
uses DataModule;
...
DataModule. Tablel. Open;
Перевагою розміщення компонентів доступу до даних у модулі даних є те, що зміна значення будь-якої властивості проявиться відразу ж у всіх звичайних модулях, до яких підключений цей модуль даних. Крім цього, всі оброблювачі подій цих компонентів, тобто вся логіка роботи з даними додатка, зібрані в одному місці, що теж досить зручно.
Кожен набір даних инкапсулирован у спеціальному компоненті доступу до даних. У VCL Delphi реалізований набір базових класів, що підтримують функціональність наборів даних, і практично ідентичні по складу набори дочірніх компонентів для технологій доступу до даних. Їхній загальний предок —клас TDataSet.
TDataSet – базовий клас, що забезпечує функціонування наборів даних у програмі Delphi. Під набором даних (НД) розуміється підмножина записів, отриманих з однієї чи декількох таблиць БД і розташована у оперативної пам'яти. Основне призначення класу TDataSet – визначити основні властивості і методи для роботи з реляційними наборами даних, що не залежать від BDE.
TBDEDataSet – безпосередній нащадок класу TDataSet , що забезпечує реалізацію найважливіших властивостей і методів роботи з НД за рахунок звертання до функцій BDE.
TDBDataSet – клас, у якому додається до успадкованих нові властивості і методи, що забезпечують з'єднання НД із БД. Цій клас є безпосереднім предком основних компонентів доступу до даних TTable і TQuery.
TTable – клас, що реалізує НД, джерелом якого є одна таблиця БД. Містить багато властивостей і методів, за допомогою яких можна виконувати над набором даних багатий спектр операцій. Більшість з них перевизначають властивості і методи, визначені в компонентах-предках TDataSet і TBDEDataSet.
TQuery – клас, цілком аналогічний класу TTable, однак відрізняється від нього тим, що може містити дані, отримані з однієї чи декількох таблиць БД. Зміст інформації у цьому НД визначається його властивістю, що є SQL-запитом.
TDataSource – клас компонента, що називається “джерелом даних” і призначений для зв'язування компонента НД (TTable чи TQuery) з візуальними компонентами.
TField – клас, що представляє окреме поле (стовпчик) НД. Містить властивості і методи, що визначають поведінку і параметри поля. Клас є абстрактним і безпосередньо ніколи не використовується. Він використовується як батьківський для створення похідних класів, що реалізують поля конкретних типів, наприклад:
TStringField – клас полів строкового типу;
TNumericField – клас полів числового типу;
TDateTimeField – клас полів типу “Дата/Час”, і ін.
Безпосередньо в прикладної програмі з розглянутих компонентів ми будемо використовувати тільки компоненти TQuery, TTable і TDataSource. Вони розміщаються на формі прикладної програми (чи в спеціальному модулі). Під час виконання програми вони не відображаються. Похідні від TField класи використовуються для доступу до полів із програмного коду.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |






