Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП (15. Архитектура приложений баз данны).doc
Скачиваний:
3
Добавлен:
11.11.2019
Размер:
77 Кб
Скачать
☆

Підключення набору даних

Компонент доступу до даних є основою приложення баз даних. На основі вибраної таблиці БД він створює набір даних і дозволяє ефективно управляти їм. В процесі роботи такий компонент тісно взаємодіє з функціями відповідної технології доступу до даним. Зазвичай доступ до функціональності технології доступу до даних здійснюється через сукупність інтерфейсів. Всі компоненти доступу до даних є невізуальними.

Для створення нового проекту досить вибрати команду New Application з меню File або скористатися Репозиторієм об'єктів, який відкривається командою New з меню File.

Тут розглядається простий варіант створення приложення. У реальних проектах для розміщення компонентів доступу до даних слід використовувати модуль даних.

Потім на форму нового проекту необхідно перенести компонент, що інкапсулює набір даних, і виконати наступні дії. Послідовність дій розглянемо для компоненту, що інкапсулює функції таблиці.

1. Підключити компонент до бази даних. Для цього, залежно від конкретної технології, використовується або спеціальний компонент, що встановлює з'єднання, або пряме звернення до драйвера, інтерфейсу або динамічної бібліотеки.

2. Підключити до компоненту таблицю БД. Для цього використовується властивість TableName, доступна в Інспекторові об'єктів. Після виконання дій першого етапу в списку цієї властивості повинні з'явитися імена всіх доступних в підключеній базі даних таблиць. Після вибору імені таблиці у властивості TableName компонент виявляється пов'язаним з нею.

3. Перейменувати компонент. Це не обов'язкова дія. Проте, в будь-яких випадках бажано привласнювати компонентам доступу до даним осмислені імена, відповідні назвам підключених таблиць. Звичайна назва компоненту копіює назву таблиці (наприклад, Orders або OrdTable илт tblOrders).

4. Активізувати зв'язок між компонентом і таблицею БД. Для цього використовується властивість Active. Якщо в Інспекторові об'єктів привласнити цій властивості значення True, то зв'язок активізується. Цю операцію можна виконати і в початковому коді приложення. Також існує метод open, який відкриває набір даних, і метод close, що закриває його.

Як приклад спробуємо створити просте приложення баз даних, COUNTRY, що працює з таблицею.DB із стандартної демонстраційної бази даних DBDEMOS через драйвер процесора Borland Database Engine.

На форму нового проекту необхідно перенести компонент TTаblе із сторінки BDE Палітри компонентів. Властивість DatabaseName повинна посилатися на псевдонім DBDEMOS, який створюється автоматично при установці Delphi, його можна вибрати із списку властивості DatabaseName. Для властивості TableName необхідно задати ім'я таблиці "COUNTRY.DB". Його також можна вибрати із списку. Подвійне клацання на властивості Active в Інспекторові об'єктів привласнює йому значення True. Після цього зв'язок компоненту з таблицею активізується. Властивість Name має значення "CountryTable".

Відкриття і закриття набору даних можна передбачити як реакцію на дії користувача або виникнення події. Найчастіше набір даних повинен відкриватися при першому показі форми і закриватися при її закритті.

Лістинг 1. Секція Implementation головного модуля проекту DemoDBApp 

implementation

 $R *.DFM}

procedure TForml.FormShowfSender: TObject);

begin

 try

CountryTable.Open;

 except

ShowMessage('Table open error');

 end; 

end;

procedure TForml.FormClose(Sender: TObject; var Action: TCloseAction); 

begin

CountryTable.Close; 

end;

end.

При відкритті форми виконується метод обробник FormShow. У нім набір даних відкривається за допомогою методу Open. Звернете увагу на використання конструкції try..except, яка забезпечує коректне завершення при виникненні виняткових ситуацій.

Оскільки помилки в роботі приложень баз даних можуть привести до серйозних наслідків (втрата або спотворення даних), то захисний код повинен бути присутнім у всіх критичних місцях.

У методі-обробнику FormClose, який викликається при закритті форми, набір даних закривається методом close.

В принципі, для виконання розглянутих операцій можна скористатися і властивістю Active. Проте реальні операції виконують вказані методи. Тому використання властивості є зайвим етапом, та і з погляду ООП всі дії повинні виконувати методи об'єкту, а властивості служать тільки для представлення значень. Властивість Active сигналізує про стан набору даних.