如果我有两个都是从TCustomClientDataset派生出来的数据集,那么我可以让一个数据集在另一个数据集上调用CloneCursor,并拥有相同数据的独立视图。文档表明,除了源数据集可以是任何数据集之外,您似乎可以通过使用TDatasetProvider实现基本相同的功能。
我在试着把这件事做好。我有一个从数据库读取数据的TSimpleDataset (我们称之为A)和一个使用独立视图的TClientDataset (我们称之为B),还有一个连接到B的TDBGrid。
如果我调用B.CloneCursor(A, ...),网格将显示A中的所有记录。但是,如果我创建一个TDatasetProvider并将其Dataset属性设置为A,然后将其设置为B的提供程序,则连接到B的网格只显示一行,而不是所有行。
我做错了什么?我如何修复它,使网格最终显示所有A
发布于 2012-09-16 09:55:32
在对调试器进行了大量的研究之后,我设法找到了这一点。打开dataset将通过提供程序拉取数据,但它不会首先在源数据集上调用First。由于程序中其他地方的原因,源数据集一直在最后一行,所以在它命中EOF之前,我只得到了一行。事先显式调用First解决了这个问题。
https://stackoverflow.com/questions/12441470
复制相似问题