请教一个关于ClientDataSet的问题(100分)

  • 主题发起人 wendy_lwj
  • 开始时间
W

wendy_lwj

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层结构的程序中,client端对多个数据做了修改后,通过ClientDataSet的
ApplyUpdates函数递交,但是总是会死机,奇怪的是,如果在client端同时添加多个记
录后再ApplyUpdates,情况良好。谁能告诉我这究竟是怎么回事,我该怎么做,该怎么
修改????
经别人介绍,第一次来到这里,请这里的朋友帮我一把吧,呵呵~~谢谢了!!!
 
if ClientDataSet.ChangeCount > 0 then
ClientDataSet.ApplyUpdate
最好说明错误原因。
 
代码绝对没有错,在一个grid内,对一个表的某个字段做修改,但是每修改完一个记录,
并不ApplyUpdate,只是post在本地,当把需要修改的记录全部修改完后,一起ApplyUpdate,
此时就出现死机了!!
procedure TForm.Button1Click(Sender: TObject);
begin
if DataModule.ClientDataSet1.State in [dsInsert, dsEdit] then
DataModule.ClientDataSet1.Post;
end;
procedure TForm.Button2Click(Sender: TObject);
begin
if DataModule.ClientDataSet1.State in [dsInsert, dsEdit] then
DataModule.ClientDataSet1.Post;
if (DataModule.ClientDataSet1.ChangeCount > 0) then

begin
DataModule.ClientDataSet1.ApplyUpdates(0);
end;
 
为什么没有理我的问题???呜呜~~~
难道大家都没有碰到过同样的问题吗?????
 
可能是数据库问题,能追加数据而不能修改数据是因为BDE无法定位记录造成的
建议建立主索引。
 
if (ClientDataSet1.ChangeCount > 0) then

ClientDataSet1.ApplyUpdates(-1);
end;
这样看看行不行
 
我试了panyongze的方法,的确可行了!!谢谢了!!
也同样的感谢Chenlili!!
 
那结束问题吧。
 
多人接受答案了。
 
顶部