关于ClientDataSet1.ApplyUpdates(0);(100分)

  • 主题发起人 主题发起人 free_knight
  • 开始时间 开始时间
F

free_knight

Unregistered / Unconfirmed
GUEST, unregistred user!
我对记录的删除
procedure TForm1.Button1Click(Sender: TObject);
begin
clientDataSet1.Delete;
Clientdataset1.ApplyUpdates(0);
end;

我对表的更新
procedure TForm1.Button2Click(Sender: TObject);
begin
clientDataSet1.active:=False;
clientDataSet1.active:=True;
end;

我对新建和修改记录时的保存
procedure TOtherInfo.SaveOperation;
begin
DataSource1.DataSet.Post;
ClientDataSet1.ApplyUpdates(0);
end;

为什么我新建记录是正确的,
修改,删除时也没有出错提示,客户端也数据也被更改,如删除了第一条记录
但用TForm1.Button2Click更新却回复到更改之前的状态,删除的记录有出现了
ClientDataSet1.ApplyUpdates(0);的返回值是 >0 的。

 
更新时 没有真正的提交到数据库中
 
clientdataset1.applyupdate(-1)
 
jrq:我也知道是更新时 没有真正的提交到数据库中,但怎样解决
qhchen77:clientdataset1.applyupdate(-1)我试过N(N>=10)遍了


 
clientDataSet1.Delete;
clientdataset1.post;
clientdataset1.applyupdate(-1);
 
chenliang_fly:需要clientdataset1.post;么,有了反而出错了。
 
更新数据时出错了,但没有提示错误,是因为你没有捕捉调和错误,可以简单地使用系统自
带的ReconcileErrorForm进行处理,就知道发生什么错误了。
如果你使用MS SQLSERVER,也可以跟踪一下中间层生成的SQL语句,马上就明白了。
 
gxx:大侠,能详细点么,
我用的是oracle8i,delphi6
我的同一段代码对有的表applyupdate后正确,
有的不,同一段代码,就差一个表名。
怎样通过ReconcileErrorForm进行处理。
或许虽然你并不在意分数,只要你能帮我解决,重谢。[:)][:)][:)][:)][:)][:)]
 
在Delphi里面就有Demo说怎么用ReconcileErrorForm的,你看看就明白的了,
就一句语句的。。。。[:)]
 
在d6的demo/midas中有一个例子,一看就明白了。
打开工程后,选择新建,到对话框页上,有一个调和错误对话框,然后在clientdata的onReconcileError
事件中写上一句话。Action := HandleReconcileError(DataSet, UpdateKind, E);
 
用ReconcileErrorForm捕捉到的错误,
Record not found or changed by another user.
但这是没有理由的。
 
在真正更改数据前,将CLIENTDATASET置为可编辑状态。即在clientdataset1.applyupdate(0)
前加入下面一句:
clientdataset1.edit;
 
没有用的,我试过N遍了
 
多人接受答案了。
 
后退
顶部