Механізм master-detail

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

Додамо в програмі, яку ми розробили в роботі №14 нові компоненти:

IBDataSet2, DataSource2, DBGrid2. Пов’яжемо DataSource2 з IBDataSet2, а DBGrid2 з DataSource2. Вкажемо такий SelectSQL запит для IBDataSet2:

SELECT * FROM DEPARTMENT;

За допомогою редактора DataSet Editor створимо такі запити:

InsertSQL:

insert into DEPARTMENT

DEPT_NO, DEPARTMENT, HEAD_DEPT, MNGR_NO, BUDGET, LOCATION, PHONE_NO)

values

:DEPT_NO,:DEPARTMENT,:HEAD_DEPT,:MNGR_NO,:BUDGET,:LOCATION,:PHONE_NO)

DeleteSQL:

delete from DEPARTMENT

where

DEPT_NO =:OLD_DEPT_NO

ModifySQL:

update DEPARTMENT

set

DEPT_NO =:DEPT_NO,

DEPARTMENT =:DEPARTMENT,

HEAD_DEPT =:HEAD_DEPT,

MNGR_NO =:MNGR_NO,

BUDGET =:BUDGET,

LOCATION =:LOCATION,

PHONE_NO =:PHONE_NO

where

DEPT_NO =:OLD_DEPT_NO

RefreshSQL:

Select

DEPT_NO,

DEPARTMENT,

HEAD_DEPT,

MNGR_NO,

BUDGET,

LOCATION,

PHONE_NO

from DEPARTMENT

where

DEPT_NO =:DEPT_NO

Тепер необхідно внести зміни до IBDataSet1. По перше, необхідно задати властивість IBDataSet1.DataSource рівною DataSource2. По друге, необхідно зміними IBDataSet1.SelectSQL:

SELECT * FROM EMPLOYEE

WHERE DEPT_NO=:DEPT_NO;

При цьому значення параметра:DEPT_NO буде автоматично вибиратися з одноіменного поля IBDataSet2: DEPT_NO.

Запустивши програму, ми побачимо, що при переміщеннях по другій таблиці в першій будуть відображені лише співробітники поточного відділу.

Настроїмо IBDataSet1 таким чином, щоб при додаванні нового запису про робітника автоматично підставлявся номер поточного відділу. Для цього напишемо такий обробник OnNewRecord у IBDataSet1:

procedure TForm1.IBDataSet1NewRecord(DataSet: TDataSet);

begin

IBDataSet1.FieldByName('DEPT_NO').AsInteger:=

IBDataSet2.FieldByName('DEPT_NO').AsInteger;

end;

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

1. Яким чином виконується вибір даних з підпорядкованих таблиць?

2. Яка комнда здійснює вибір підпорядкованих записів?


Література

Ø Крис Фиайли, SQL Руководство по изучению языка, СПб Питер 2004

Ø Д.Соломон, MICROSOFT SQL Server Энциклопедия пользователя

Ø Х.Ладани, SQL Энциклопедия пользователя

Ø «Рекоммендации по общепользовательскому интерфейсу», Microsoft, редакция.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: