【发布时间】:2011-11-21 17:34:51
【问题描述】:
我是德尔福的新手。我有两个 TSQLTables(比如 A 和 B)通过两个 TDataSetProviders 链接到两个 TClientDataSets(分别是 cdsA 和 cdsB),两个 DataSources(dsA 和 dsB)完成了这个场景。
设A为主,B为细。
B.MasterSource 设置为 dsA 值,B.MasterFields 值引用 cdsA 中不存在的字段(但在查询中存在)。当我启动应用程序时,我先打开 cdsA,然后再打开 cdsB。出了点问题。链接到 dsA 数据源的 DBGrid 显示数据,链接到 dsB 的 DBGrid 不显示任何内容。 SQLMonitor 日志文件显示在 B 中实现的查询已执行(简单的 select a, b, c from tableB )。如果我更改查询并显示字段“X”(select a, b, c, X from tableB),这些东西就可以正常工作,其中“X”是 B.IndexFieldNames 属性引用的字段。
为什么链接到 dsB 的 DBGrid 没有显示与 cdsA 的当前记录相关的 B 记录?仅当我在查询列中指定 IndexFieldNames 时它才有效吗?我错过了什么? TIA。
【问题讨论】:
标签: delphi delphi-7 master-detail dbexpress