在服務端的ClientDataSet中Append時,為何隻能新增一筆資料?(50分)

  • 主题发起人 主题发起人 dialog1
  • 开始时间 开始时间
D

dialog1

Unregistered / Unconfirmed
GUEST, unregistred user!
在三層中的
procedure Tservers.inv;
var
CDS:TClientDataSet;
begin
CDS:=TClientDataSet.Create(self);
CDS.FieldDefs.Add('UD001',ftString,20,false);
CDS.CreateDataSet;
DSP.DataSet:=CDS;
CDS.Append;
CDS.FieldByName('UD001').AsString:='aaa';
CDS.Append;
CDS.FieldByName('UD001').AsString:='bbb';
CDS.Post;
CDS.Append;
CDS.FieldByName('UD001').AsString:='ccc';
CDS.Post;
為何在應用端隻有一筆資料:'ccc'?
 
我不覺得有問題.
 
ClientDataSet的数据在缓存中 没提交到数据库!
 
ClientDataSet.Post只是把数据放在缓存中,并没有提交到数据库,
要提交需要调用ClientDataSet.ApplyUpdates(0);
 
如xtyygyiw520所说。post的结果只是把数据暂存于缓存,调用applyupdates(0)才能
更新服务器。“0“,可以限制错误数目。
 
也可以用(-1)。
 
好象没问题吧
 
CDS.Append;
CDS.FieldByName('UD001').AsString:='aaa';
CDS.Append;
CDS.FieldByName('UD001').AsString:='bbb';
CDS.Append;
CDS.FieldByName('UD001').AsString:='ccc';
CDS.Applyupdate(0)
showmessage('這下一定有三條記彔')
 
CDS.Append;
CDS.FieldByName('UD001').AsString:='aaa';
CDS.post;
CDS.Append;
CDS.FieldByName('UD001').AsString:='bbb';
CDS.post;
CDS.Append;
CDS.FieldByName('UD001').AsString:='ccc';
cds.post;
 
后退
顶部