最近用D7在做三层数据库软件,我用TClientDataSet控件放到客户端,用ApplyUpdates(0)提交数据。。可是有时候数据怎么提交不成功? 就是说数据没有保存到数据库中,可是有的时候就可以保存到数据库中
  查了好长时候都不知道是什么原因?还请大伙帮帮忙。。请高手们指点多谢了。在数据没有保存到数据库中时,用ClientDataSet.Refresh就会报错,错误信息如下:
---------------------------
Debugger Exception Notification
---------------------------
Project IAMUC.exe raised exception class EDatabaseError with message 'sGGZD: Must apply updates before refreshing data'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

解决方案 »

  1.   

    本地数据集如果有更改,而更改的结果又没有被提交到数据库,那么是不能刷新数据集的,因为Delphi不知道如何处理更改后的数据..
    至于你说的调用数据集的ApplyUpDates方法而没有将修改结果提交到数据库中,没有碰到过这样的情况.贴出代码来看看吧:)
      

  2.   

    谁有源码啊?delphi + sql server 2000的C/S三层模式信息管理系统的。发我一份啊[email protected]非常感谢!
      

  3.   

    谢谢【lxjssy】的提醒。
      我是用sql查询出来的数据,然后就用计算了一下表中的数据。如:
    FieldByName('c').Value := FielByName('a').Value+FieldByName('c').Value;就这样,在DBGrid表格中都显示了数据(而且数据都有,没有空值。),可是保存的时候用ApplyUpDates(0)方法就是保存不到数据库中。也找不出是什么原因。不过我插入一打记录时,可以用ApplyUpDates(0)方法保存到数据库中真不知道是哪个地方弄错了
      还请大伙帮我分析一下原因???