程序里面,RunTime时动态的建立clientdataset(使用createdataset),使用完后,如何把它从内存中清除?不知道是问题不清析还是我理解得简单? ClientDataSet.Free 建议使用FreeAndNil(ClientDataSet)1可以从新定义个错误的dataset,然后clientdataset,这样产生错误后原来的也没了。 2可以从clientdataset继承作个组件,然后把dDSBase开放出来。然后直接dDSBase:=nil再把问题描述一下。 放一个clientdataset到form上,然后运行的时候建立这个内存表的所有字段及索引。开始 使用,包括增加记录,删除记录等动作。这时候这个clientdataset应该是在内存中的一个数据表。现在该做的工作做完了,要把这个内存表清除掉(删除),要如何做? Form关掉,他会自动释放吗?你的所有字段和表创建都属于clientdataset,当clientdataset释放时它们会自动跟随着释放。而clientdataset创建时属于FORM的(因为你时放一个控建),所以当FORM释放时clientdataset自动释放。如果clientdataset自己创建,则手工把它置成NIL:FreeAndNil(ClientDataSet) 。ClientDataSet.Free 或FreeAndNil(ClientDataSet) 建议使用后一种,可以把访问指针一起释放掉 如果TClientDataSet.Create(Aowner)创建时指定了Aowner,那么Aowner释放,CDS就会自动释放。