我是德尔福的新手。我有两个 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。