Показать сообщение отдельно
  #2  
Старый 16.04.2009, 19:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

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

Например, есть, ну не знаю... аренда машин. Есть табоица клиентов и таблица машин. Нам интересно знать какие машины клиент вообще брал в аренду. Задача чисто умозрительная. В реале такие задачи так не решаются.
Соответсвенно, делаем таблицу Clients и таблицу Cars, ну и отношение между ними м-к-м в таблице ClientsCars. Так вот в приложении тебе все-равно надо показывать либо машины, ктоторые брал конкретный клиент, либо клиентов, кторые брали конкретную машину. Т.е. в обоих случаях отношение отображается на самом деле один-ко-многим. Ну а запрос будет примерно такой:

Код:
SELECT C.*
FROM Cars C LEFT JOIN ClientsCars CC ON C.ID = CC.CarID
WHERE CC.ClientID = :ClientID

Т.е. мы сотмрим какие машины брал клиент. Для этого склеиваем таблицу Машин и таблицу МашинКлиентов и фильтруем результат по клиенту (параметр в WHERE).
Ответить с цитированием