Для задания свойства MasterFields можно использовать Редактор связей полей (Field Link Designer), который вызывается щелчком на кнопке в поле редактирования этого свойства в Инспекторе объектов (рис. 14.1).

Программирование в Delphi 7

Рис. 14.1. Редактор связей полей

t

Здесь в разворачивающемся списке Available Indexes выбирается требуемый индекс для подчиненной таблицы. После этого в списке Detail Fields появляются имена всех полей, входящих в этот индекс. В списке Master Fields отображаются все поля главной таблицы.

Теперь требуется создать связи между полями. Для этого в левом списке выбирается поле подчиненной таблицы, а затем соответствующее ему поле главной таблицы в правом списке. После этого активизируется кнопка Add, щелчок на которой создает отношение по двум полям главной и подчиненной таблиц. Созданная связь отображается в списке Joined Fields.

(_Примечание_j

После создания связи по индексированным полям данный индекс становится текущим для набора данных. При этом в зависимости от типа СУБД автоматически заполняется СВСЙСТВЭ indexName ИЛИ IndexFieldNames.

Уже созданные связи можно удалить. Кнопка Delete удаляет выбранную связь, кнопка Clear - все связи.

После создания связей между полями отношение "один-ко-многим" считается установленным. Теперь достаточно открыть оба набора данных, чтобы увидеть работу отношения.

В качестве примера рассмотрим проект DemoJoins, в котором связываются таблицы из демонстрационной базы данных DBDEMOS. Для этого использованы компоненты ADO, подробнее о которых вы можете узнать из гл. 19.

Таблица Customers представлена в наборе данных компонента custTable, она содержит данные о покупателях. Таблица Orders представлена в наборе данных компонента ordTable, она содержит данные о заказах. Таблица Employee представлена в наборе данных компонента EmpTable, она содержат данные о продавцах (табл. 14.2).

( Примечание )

Приложение DemoJoins не содержит дополнительного исходного кода. Все отношения между таблицами заданы при помощи Инспектора объектов.

Отношение "один-ко-многим" задано между таблицами покупателей (Customers) и заказов (Orders). Таблица покупателей является главной. Для создания отношения установлены следующие значения свойств компонента OrdTabie (подчиненная таблица).

Свойство MasterSource должно указывать на компонент Custsource, связанный с набором данных CustTabie.

Свойство MasterFields указывает на поле CustNo таблицы Customers.

В наборе данных OrdTable включен вторичный индекс на основе поля CustNo (IndexName = 'CustNo').

Программирование в Delphi 7

Рис. 14.2. Главная форма проекта DemoJoins

Таким образом, две таблицы связаны отношением "один-ко-многим" по индексированным полям СийгЧо (номер покупателя). В результате, при перемещении по записям таблицы покупателей, в таблице заказов будут показаны только те заказы, которые относятся к текущему покупателю

Отношение "многие-ко-многим"

Отношение "многие-ко-многим" отличается тем, что подчиненная таблица еще раз связывается в качестве главной с другой подчиненной таблицей аналогичной последовательностью действий, как и в отношении "один-ко-многим".


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 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