在程序运行过程中,执行如下代码:
    if cds1.Active then
      cds1.EmptyDataSet
    else
      cds1.CreateDataSet;
    if cds2.Active then
      cds2.EmptyDataSet
    else
      cds2.CreateDataSet;程序在退出时将报错:
Access violation at address 00000000.Read of address 00000000。
如果不执行此段代码就正常。这个问题如何解决,是什么原因?谢谢了,着急

解决方案 »

  1.   

    退出时关掉TClientDataSet试试,清理一些无用的实例
      

  2.   

    你这段代码是放在哪个位置呢?onClose?onDestroy?destructor?
      

  3.   

    这段代码放在我的一个方法中,如果执行了方法,在关闭的时候出错。并且在我退出的时候关闭这两个TClientDataSet也不行。谢谢各位的关注!
      

  4.   

    我的想法是cds1.EmptyDataSet跟这句有关,你想想你的退出流程中那些事件还需要CDS1中的数据,但你提前把数据清空了