关于TClientDataSet(100分)

  • 主题发起人 主题发起人 xiaoqi
  • 开始时间 开始时间
X

xiaoqi

Unregistered / Unconfirmed
GUEST, unregistred user!
用TClientDataset删除数据时,有时会出现死循环是增么回事,
这是不是它的bug,我用While not eof 和for i:= 0 to ClientDataSet1.RecordCount-1
两种方式都会出现这种现象
 
贴你的代码出来看看
CDS1:TclientDataSet;
While not(CDS1.eof)do
being
CDS1.delete;
CDS1.next;//你是不是少了这个
end;
 
是不是没加NEXT方法? :)
 
cdsTemp.Close;
cdsTemp.LoadFromFile('aaa.cds');
cdsTemp.First;
while not cdsTemp.eofdo

begin
if Trim(cdsTemp.Fields[0].AsString) <> '' then

cdsTemp.Delete
else
cdsTemp.Next;
end;

用TClientDataSet删除一条记录后,会自动往后移动一条记录,不用next
否则会出现问题
 
你是从哪里删除的?(first or last)
 
我是直接用TClientDataSet.delete方法
 
直接用TClientDataSet.delete方法(还是POST,INSERT等),并不能真正删除数据库中
的数据。要真正更新数据库中的数据,请调用TClientDataSet的ApplyUpDatas函数。
 
cdsTemp.First;
while not cdsTemp.Eofdo
cdsTemp.delete;
即可。
你的代码看不出什么问题,可能是cdsTemp.Fields[0].AsString的原因,跟踪一下看看。
 
我試過你的方法沒問題,可能是midas的bug,你有沒有打delphi的補丁呢
 
后退
顶部