Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Методичка - Організація баз даних і знань.doc
Скачиваний:
60
Добавлен:
02.05.2014
Размер:
631.3 Кб
Скачать

Лабораторна робота №3

Організація зв’язку Master-Detail між наборами даних

Мета:Організація роботи з двома таблицями.

Завдання:

Розробити застосування, що складається з форми для роботи з двома таблицями:

  1. за допомогою майстра форм Database FormWizard;

  2. вручну з використанням компонентів TTable, TDataSource, TPanel, TScrollBox, TDBNaviganor, TField.

Обов’язкові засоби: Database Desktop, TTable, TDataSource, TDBGrid.

Зміст звіту:

  1. Опис структури двох таблиць, що з’єднані зв’язком типу один-до-багатьох.

  2. Опис розроблених форм.

  3. Висновки по роботі.

Порядок роботи і рекомендації до її виконання

Для таблиць БД, що зв’язані відношенням один-до-багатьох і для яких визначена цілісність посилання, можна розробити форму типу Master-Detail.При встановленні покажчика на деякий запис НДTable1, в НДTable2будуть показані тільки ті записи, що пов’язані з поточним записом НДTable1.

Розробка форми Master-Detailза допомогою Database Form Wizard

Робота з Database FormWizard описана в рекомендаціях до роботи №1.

Розробка форми Master-Detailвручну

  1. Для виконання другого завдання відкрити нову форму, що створюється автоматично при відкритті нового проекту – форму Form1.

  2. Помістити на форму два компоненти TPanel(сторінкаStandard).TPanelдозволяє об’єднувати декілька компонентів. ПершийTPanelрозмістити в верхній частині форми і задати властивістьAlign = AlTop(панель розтягнеться на всю ширину форми). ДругийTPanelрозмістити в нижній частині форми. Задати для нього властивістьAlign = AlClient(панель займе увесь нижній простір вікна форми).

  3. Вилучити заголовки панелі. Для цього виділити обидві панелі, перейти в Object Inspectorі вилучити значення властивостіCaption.

  4. На нижню панель помістити область прокрутки (для того, щоб на формі можна було розмістити більше елементів управління, ніж дозволяють розміри її вікна). Компонент TScrollBox(сторінкаAdditional) автоматично створює лінійки прокрутки. Встановити для компонентаTScrollBoxвластивістьAlign=AlClient.

  5. Розмістити невізуальні компоненти: два компоненти TTableі два -TDataSourceу верхній частині форми. Встановити властивості для компонентів:

Table1: DatabaseName = DB і TableName = Group.db

Table2: DatabaseName = DB і TableName = Student.db

DataSource1 : DataSet = Table1

DataSource2 : DataSet = Table2

  1. Розмістити на верхній панелі компонент TDBNavigator(навігатор БД - сторінкаDataControls), який є елементом управління для роботи з даними. Встановити для нього властивістьDataSource=DataSource1.

  2. Реалізувати механізм зв’язком типу Master-Detail між НД. Для цього встановити для компонентаTable2 властивості:

  • MasterSource = DataSource1;

  • В полі MasterFieldsнатиснути кнопку еліпса. У вікніField Link Designerвстановити параметри зв’язку. В поліAvailable Indexesвибрати в якості поточного індексу поле, за яким встановлюється зв’язок:GCode(код групи). У спискахDetail FieldsіMaster Fields вибрати поле і натиснутиAdd. В поліJoined Fieldsбуде сформовано виразGCode GCode. НатиснутиOK. В компонентіTable2поточний індекс (властивістьIndexName) буде замінено на індекс, побудований за полемGCode.

Таким чином можна вручну створити ту ж форму, що і за допомогою Database Form Wizard.

Приклад:Форма з наборами даних, що пов’язані як один-до-багатьох по полю “номер групи”.