【问题标题】:Can I make a lookup from two datasets at once?我可以一次从两个数据集中进行查找吗?
【发布时间】:2008-12-12 06:03:24
【问题描述】:
在this question, 中,我询问了将数据集分解为子集的问题,并得到了很好的回应。现在我有相反的问题。我有两个不同的数据集,代表一个共同祖先的两个不同子类的对象,我需要使用相同的 TDBLookupComboBox 同时搜索它们,使用两个属性,ID # 和 Name,存在于父级中类。
查找字段允许您从多个源字段中查找内容,但只能在同一数据集中,而不是两个不同的数据集中。查找控件只允许您指定一个查找字段进行搜索。有谁知道我如何从两个数据集中获取数据以同时出现在组合框中?
【问题讨论】:
标签:
delphi
dataset
lookup
【解决方案1】:
创建您自己的 TDBLookupComboBox,它采用多个数据源。 . . .我之前创建了数据库感知控件(特别是下拉组合框)。它们很容易做到,并为您提供所需的所有控制。
【解决方案2】:
您可以将两个数据集中的记录克隆到一个包含两者并集的新数据集中。
【解决方案3】:
答案在您链接到的original question 中。你说两个数据集的成员有一个共同的祖先。因此,将所有这些对象记录放在单个 TClientDataset 中,然后对于您的两个后代数据集,只需让它们使用来自该基本数据集的克隆游标。因此,您可以将它们作为不同的集合或作为它们的一个组合集合来访问。
当然,问题在于添加到未共享基类的派生类中的任何数据,假设您有任何数据。 . .
【解决方案4】:
创建一个实际上是其他 TDataSet 联合的 TDataSource 或 TDataSet 后代。然后在插入时,您要么总是插入到一个特定的 TDataSet 中,要么有基于某个字段的值的规则来确定要插入哪个 TDataSet。 . . .