fetchondemand无法在clientdataset中工作

时间:2014-02-11 17:04:37

标签: delphi fetch delphi-xe5 client-dataset

以xml格式拥有500.000记录数据库,尝试在xe5 Delphi 64bit应用程序(ClientDataSet)中使用。如果我完全读它,它需要超过4 GB的内存。试图使用fetchondemand = False和PacketRecords = 5000属性(如文档所述),但它根本不起作用。该应用程序对这些更改不敏感。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

感谢所有阅读我问题并试图帮助我的人。最后,我找到了一个演示,其中清楚地解释了该机制。解决方案非常简单:当想要使用fetchondemand时,必须涉及两个数据集,以限制使用的内存。第一个具有默认设置(True和-1)的数据集指向XML数据库,数据提供程序指向此数据库,第二个数据集(fetchondemand属性设置为False,DataPackets设置为所需的记录编号)获取一个数据包)指向数据提供程序,数据识别网格仅指向第二个数据集。程序员必须使用GetNextPacket过程对使用网格解析整个XML数据库的分页机制进行编码。

很抱歉打扰你这么愚蠢的问题,希望答案能帮助所有那些不清楚这种机制的人。

再次感谢你,

的Laszlo