如何通过TDatasetProvider检索所有记录?

时间:2012-09-15 20:41:04

标签: delphi tclientdataset

如果我有两个同时来自TCustomClientDataset的数据集,我可以在另一个上有一个调用CloneCursor,并且拥有相同数据的独立视图。除了源数据集可以是任何数据集之外,文档看起来您可以使用TDatasetProvider实现基本相同的事情。

我正在尝试做这项工作。我有一个TSimpleDataset(让我们称之为A)从数据库中读取数据,还有一个TClientDataset(我们称之为B),它与单独的视图一起工作,并且有一个TDBGridB相关联。

如果我拨打B.CloneCursor(A, ...),网格会显示A中的所有记录。但是,如果我创建TDatasetProvider并将其Dataset属性设置为A,然后将其设置为B的提供者,则网格仅连接到B显示一行,而不是全部。

我做错了什么,如何修复它以便网格最终显示所有A

1 个答案:

答案 0 :(得分:1)

在调试器中进行了大量的调试之后,我设法跟踪了这一点。打开数据集会通过提供程序提取数据,但不会首先在源数据集上调用First。由于程序中其他地方的东西,源数据集已经在最后一行,所以我只有一行才能达到EOF。事先明确调用First可以解决问题。