ClientDataSet的ApplyUpdate问题,头都大了,谁能帮帮我?(300分)

  • 主题发起人 主题发起人 徐凤华
  • 开始时间 开始时间
to sxqsxq:
请问如何在ApplyUpdate中定义主键?谢谢!
 
用applyupdate(-1)试一下
 
是数据库中必须有主键才可
 
徐凤华,
您先做一个测试。在FORM上放二个BUTTON。一个录入。一个保存。不要告诉我不行。
我一直都是这样做的。
又改了一下:如下:
我来拿分。
有二个事件:一个录入:
ClientDataSet1.open;
ClientDataSet1.STATE IN [DSINSERT,DSEDIT] then
ClientDataSet1.Post;
ClientDataSet1.State IN [DSINSERT,DSEDIT]) then
ClientDataSet1.Append;
ClientDataSet1.State IN [DSINSERT,DSEDIT]) then
ClientDataSet1.Edit;
一个保存:
try
if not (ClientDataSet1.State IN [DSINSERT,DSEDIT]) then
ClientDataSet1.Edit;
ClientDataSet1['ID'].AsString := Index;
ClientDataSet1['CName'].AsString := 'CName' + IntToStr(Index);
ClientDataSet1.ApplyUpdates(-1);
Application.MessageBox('数据已保存!','xx厂',MB_OK+MB_ICONINFORMATION);
ClientDataSet1.EmptyDataSet;
except
Application.MessageBox('保存出错!','xx厂',MB_OK+MB_ICONERROR);
Abort;
end;
搞定。老兄,不要用COMMANDTEXT。我用它老出错,还有就是找不到原因。一气之下。
。。。。
 
算了吧,还是我自己搞定的。多谢大家!!
发分庆祝!
只是没有想到罪魁祸首居然是TADODataSet中的EnableBCD!我倒!
将其由默认值True改为False就天下太平了。
就为这我今天还重新安装了系统,把Delphi6换为Delphi7,把Oracle8i升为Oracle9i,
为我白白逝去的时间不值。我强烈抗议,Borland为什么不让ClientDataSet自动支持BCD。
 
后退
顶部