Delphi ClientDataSet.SaveToFile内存不足

Delphi ClientDataSet.SaveToFile内存不足,delphi,delphi-xe2,firedac,tclientdataset,Delphi,Delphi Xe2,Firedac,Tclientdataset,我需要使用Firedac查询和ClientDataSet从一个包含500.000行和200列的表生成一个XML文件,以记录ClientDataSet.SaveToFile ClientDataSet.Close; Query.Sql.Clear; Query.Sql.Add ("Select * from something"); ClientDataSet.Open; ClientDataSet.SaveToFile("destination_folder.xml"); 但使用SaveToF

我需要使用Firedac查询和ClientDataSet从一个包含500.000行和200列的表生成一个XML文件,以记录ClientDataSet.SaveToFile

ClientDataSet.Close;
Query.Sql.Clear;
Query.Sql.Add ("Select * from something");
ClientDataSet.Open;
ClientDataSet.SaveToFile("destination_folder.xml");
但使用SaveToFile保存文件是内存不足错误

如何保存此文件?是否有一种方法可以将已加载的ClientDataSet写入多个文件


致以最诚挚的问候。

标准CD/MIDA的设计不适合处理如此多的记录。难道你不能在你的场景中避免使用CD吗?您真的需要以midas xml格式保存的数据包吗?我需要以ClientDataSet记录格式编写xml文件。如果不重写其内部,恐怕无法克服其固有的问题。另一个想法是用您自己的代码手动生成该文件,您可能希望看到谢谢您的评论@vavan.standard cds/midas设计得不好,无法处理如此多的记录。难道你不能在你的场景中避免使用CD吗?您真的需要以midas xml格式保存的数据包吗?我需要以ClientDataSet记录格式编写xml文件。如果不重写其内部,恐怕无法克服其固有的问题。另一个想法是用您自己的代码手动生成该文件,您可能希望看到@vavan,谢谢您的评论。