【发布时间】:2019-05-07 08:03:12
【问题描述】:
我有两张表 Country 和 City(country_id 是 Country 表中的 PK,country_id 是 City 表中的 FK)。
哪个组件用于在两个查询之间创建关系以实现快速报告。
应该是哪个结构:
- 查询 2. 客户端数据集 .... 3. ? 4.?
【问题讨论】:
标签: delphi datasource fastreport tclientdataset
我有两张表 Country 和 City(country_id 是 Country 表中的 PK,country_id 是 City 表中的 FK)。
哪个组件用于在两个查询之间创建关系以实现快速报告。
应该是哪个结构:
【问题讨论】:
标签: delphi datasource fastreport tclientdataset
这通常称为所涉及数据集之间的主从关系。
在 Delphi 中,您可以通过将 Detail 数据集连接到 TDataSource 来设置,该 TDataSource 的数据集连接到 Master 数据集。您可以在服务器端执行此操作(即在两个查询之间,使用 Detail 的 DataSource 属性或在两个客户端数据集之间使用 .Detail 的 MasterSource 属性。在服务器端执行此操作时,您编写查询的 SQL 作为参数化查询,参数是其值与 Master 的 PK 匹配的参数,如
Select * from mydetailtable where masterid = :masterid
一旦在两个数据集之间建立了主从关系,它几乎可以与任何报告生成器一起使用,包括 FastReports。
参见例如http://docwiki.embarcadero.com/RADStudio/Rio/en/Setting_Up_Master-Detail_Linked_Relationships 是从 DBExpress 组件的角度讲的,但原理适用于其他 Delphi 数据集组件。
【讨论】: