ApplyUpdates 不能提交数据修改? ( 积分: 100 )

  • 主题发起人 主题发起人 awingdragon
  • 开始时间 开始时间
A

awingdragon

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层结构中的客户端clientdataset 中调用ApplyUpdates(0)后返回1,出错,数据不能提交???后台是SQL2000数据库+ADO
 
可以增加新记录,但不可更改现有记录。程序中同时还有一个数据集在访问该表,做查询的,会不会这两个客户端数据集有冲突?
 
我也遇到过相同的问题,解决方法是:
1,在服务器端TDataSetProvider的UpdateMode改为UpWhereKeyOnly,此时需要在TADOQuery中有一个主键字段(如:KeyID)动态的更改该字段属性ProviderFlags的值,如:ADOQuery1.FieldByName('KeyID').ProviderFlags:= [pfInUpdate, pfInWhere, pfInKey];
2,如是没有KeyID字段,TDataSetProvider的UpdateMode改为upWhereChanged,此时,数据库里日期型字段不要用Datetime型,改用smallDatetime,因为Delphi会自动丢弃秒后面的“毫秒”,造成前后的数据不一致而无法更新到数据库.
但主从表结构,主表可以改,从表不能更新的情况还不知如何处理,正在郁闷中,有人遇到主从表不能更新的情况有好的解决方法,麻烦大家共享一下....
 

Similar threads

后退
顶部