我现在欲将100万条记录装载一个TClientDataSet中,再保存成为一个Cds格式的文件,不是慢的不行,就是死机;我用的方法是,ADO的连接方式,用TADOQuery控件查询,通过DataSetProvider传给一个TClientDataSet,诸位如有相同的经历,请指教,比较急;提出其它好的办法也行,主要是想最后能把这100万条记录保存成一个文件

解决方案 »

  1.   

    可能你的设计思路有问题。
    clientdataset 本来就是内存表的形式,适合保存少量的数据,
    我个人觉得,多于几千条记录,就不大适用于使用clientDataset 了
      

  2.   

    用ClientDataSet的GetNextPacket方法一次只取500條試試
      

  3.   

    >>100万条记录装载一个TClientDataSet中
    如果一次性读取这么多条数据肯定是要挂掉的。
    尝试一次性读取100条,然后写如文件,再读取下个100条(GetNextPacket)
    再写入文件。要么干脆直接利用数据库的一些特性,比如像Oracle可以直接通过它的包把数据 查询结果生成文本。MSSQL应该也有类似功能。
      

  4.   

    问题软件分为两个部分,我上面所说的就是要在其中的一个部分使用,然后能生成一个文件,然后在别一个部分的再把这个文件中存放的数据记录再导进去,所以关键的问题就是如何生成一个文件,生成一个什么样的文件,当初在做的时候,可能是考虑到TClientDataSet比较方便,但谁知想错了,由于经验比较少的原因吧