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

Настройка компоненту tDataSource

На другому етапі розробки приложення баз даних необхідно перенести на форму і набудувати компонент TDataSource. Він забезпечує взаємодію набору даних з компонентами відображення даних. Частіше всього одному набору даних відповідає один компонент TDataSource, хоча їх може бути декілька.

Для настройки властивостей компоненту необхідно виконати наступні дії.

1. Зв'язати набір даних і компонент TDataSource. Для цього використовується властивість DataSet компоненту TDataSource, доступне через Інспектор об'єктів. Це покажчик на екземпляр компоненту доступу до даним. У списку цієї властивості в Інспекторові об'єктів перераховані всі доступні компоненти наборовши даних.

2. Перейменувати компонент. Це не обов'язкова дія. Проте бажано привласнювати компонентам осмислені імена, відповідні назвам зв'язаних наборів даних. Звичайна назва компоненту комбінує ім'я набору даних (наприклад OrdSource або dsOrders).

У приложенні DemoDBApp компонент countrysource пов'язаний з компонентом CountryTable. Тому властивість DataSet має значення CountryTable.

Компонент TDataSource можна підключити не тільки до набору даних з тієї ж форми, але і будь-який інший, модуль якої вказаний в секції uses.

Компонент TDataSource має ряд корисних властивостей і методів. Отже, пов'язання з компонентом набору даних виконує властивість

property DataSet: TDataSet;

а визначити поточний стан набору даних можна, використавши властивість

type TDataSetState = (dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead, dsInternalCalc); property State: TDataSetState;

За допомогою властивості

property Enabled: Boolean;

можна включити або відключити всі зв'язані візуальні компоненти. При значенні False жоден зв'язаний компонент відображення даних не працюватиме.

Властивість

property AutoEdit: Boolean;

при значенні True завжди переводитиме набір даних в режим редагування при отриманні фокусу одним із зв'язаних візуальних компонентів.

Аналогічно, метод

procedure Edit;

переводить зв'язаний набір даних в режим редагування.

Метод

function IsLinkedTo(DataSet: TDataSet): Boolean;

повертає значення True, якщо компонент, вказаний в параметрі DataSet, дійсно пов'язаний з даним компонентом TDataSource.

Метод-обробник

type TDataChangeEvent = procedure(Sender: TObject; Field: TField)

of object;

property OnDataChange: TDataChangeEvent;

викликається при редагуванні даних в одному із зв'язаних візуальних компонентів.

Метод-обробник

property OnUpdateData: TNotifyEvent;

викликається перед збереженням змін в базі даних. Метод-обробник

property OnStateChange: TNotifyEvent;

викликається при зміні стану зв'язаного набору даних.

Відображення даних

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

Компоненти відображення даних повинні бути пов'язані з компонентом TDataSource і через нього з компонентом набору даних. Для цього використовується їх властивість DataSource. Воно присутнє у всіх компонентах відображення даних.

Більшість компонентів призначені для представлення даних з одного єдиного поля. У таких компонентах є ще одна властивість DataField, яка визначає поле зв'язаного набору даних, що відображається в компоненті.

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

Таким чином, для кожного візуального компоненту відображення даних необхідно виконати наступні операції:

1. Зв'язати компонент відображення даних і компонент TDataSource. Для цього використовується властивість Datasource, яка повинна указувати на екземпляр необхідного компоненту TDataSource. Один компонент відображення даних можна пов'язати тільки з одним компонентом TDataSource. Необхідний компонент можна вибрати в списку властивостей в Інспекторові об'єктів.

2. Задати поле даних. Для цього використовується властивість DataField типу TFields. У нім необхідно вказати ім'я поля зв'язаного набору даних. Після завдання властивості Datasource поле можна вибрати із списку. Цей етап застосовується тільки для компонентів, що відображають єдине поле.

Окреме місце серед компонентів відображення даних займає компонент TDBNavigator. Він призначений для переміщення по записах набору даних.

У приложенні DemoDBApp використані компоненти TDBGrid, TDBNavigator і TDBEdit.

Всі три компоненти відображення даних пов'язано з компонентом CountrySource типу TDataSource за допомогою властивості DataSource.

Компонент TDBEdit відображає дані з поля capital (столиця держави) і дозволяє редагувати їх.

Компонент TDBGrid показує набір даних цілком, дані в осередках можна редагувати.

Компонент TDBNavigator дозволяє переміщатися по записах набору даних CountryTable. При цьому результат помітний у всіх підключених до набору даних компонентах відображення даних.

Висновок

Приложення баз даних можуть діставати доступ до джерел даних за допомогою різноманітних технологій доступу, багато хто з яких використовується і в приложеннях Delphi. Проте будь-яке приложення баз даних в Delphi має стандартне ядро, структура якого визначена архітектурою приложення баз даних.

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

У основі процесу розробки лежить тріада компонентів:

  •   невізуальні компоненти набору даних;

  •   невізуальні компоненти TDataSource;

  •   візуальні компоненти відображення даних.

Контрольні запитання:

  1. Основні компоненти архітектури приложень баз даних в Delphi.**

  2. Який компонент використовується для забезпечення зв'язку набору даних з візуальними компонентами відображення даних. ***

  3. Які дії може виконувати користувач за допомогою компонентів відображення даних.***

  4. Які дії необхідно виконати для настройки властивостей компоненту.****

  5. Які операції необхідно виконати для кожного візуального компоненту відображення даних.****

Література:

  1. Архангельский А.Я. Программирование в Delphi 7, М.,: ООО «Бином-Пресс», 2003 г. – 1152 с.

  2. Дарахвелидзе П. Г., Марков Е. П. Программирование в Delphi 7. — СПб.: БХВ-Петербург, 2003. — 784 с: ил.

  3. Колосов С.В. Программирование в среде Delphi., - Мн.: БГУИР, 2005, - 164 с.

  4. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Об'ектно-ориентированное программирование: Учеб. Для вузов / Под ред. Г.С.Ивановой. – М.: Изд-во МГТУ им. Н.Э.Баумана, 2001 – 320с.

  5. Пестриков В.М., Маслобоев А.Н., Delphi на примерах. – СПб.: БХВ – Петербург, 2005. 496 с.

4