ClientDataSet内存表反复的插入和删除记录后(最后总记录数基本不变),会不会内存越占越多,这个问题该如何处理?真头痛。

解决方案 »

  1.   

    搞到内存崩溃,取这么多干什么。ClientDataSet总是要记录一些改变,内存增加是会的有的,也不至于崩溃啊。
      

  2.   

    你不会是全部数据一直在ClientDataSet中操作,而不写回数据库吧?
      

  3.   

    插入删除后用ClientDataSet1.MergeChangeLog,你可以实验一下
      

  4.   

    前端取数据一定要注意一个问题:不需要的数据坚决不要拿到前端来,前端只拿需要的数据,比如窗口一进去就是空记录。比如: select SName from aa where 1=2  ,还要注意拿字段,少用*号,拿需要的字段。这样就能加快速度。
      

  5.   

    ClientDataSet会记录每个添加删除等修改操作.尽管这些操作是只记录差异部分的,内存还是会缓慢增加的.
    有一个MergeChange还是Merge什么的操作.有几年没碰数据库了,具体名字记不清了.