Создать отношения между двумя запросами Delphi - PullRequest
0 голосов
/ 07 мая 2019

У меня есть две таблицы Country и City (country_id - это PK в таблице Country, а country_id - FK в таблице City).

Какой компонент используется для создания связи между двумя запросами для быстрого отчета.

our

Какая структура должна быть:

  1. Запрос 2. Набор данных клиента .... 3.?4.?

1 Ответ

4 голосов
/ 07 мая 2019

Это обычно называется отношением Master-Detail между задействованными наборами данных.

В Delphi вы настраиваете его, подключая набор данных Detail к источнику TDataSource, набор данных которого связан с набором данных Master.Это можно сделать на стороне сервера (т. Е. Между двумя запросами, используя свойство DataSource объекта Detail, или между двумя наборами клиентских данных, используя свойство MasterSource объекта. Деталь. При выполнении этого на стороне сервера вы пишетеSQL для запроса как параметризованного запроса, с параметром, значение которого совпадает с PK Мастера, как в

  Select * from mydetailtable where masterid = :masterid

Как только отношение Master-Detail установлено между двумя наборами данных, оно должно работать практически слюбой генератор отчетов, включая FastReports.

См., например, http://docwiki.embarcadero.com/RADStudio/Rio/en/Setting_Up_Master-Detail_Linked_Relationships, в котором говорится об этом с точки зрения компонентов DBExpress, но принцип применим к другим компонентам набора данных Delphi.

...