谢谢大家的回答,但问题还没有解决
to Carson_zzd :我的数据都是已经post了的,所以你的方法不行。
to yue_shan :我开始也想通过你所说的方法实现,但新添加的数据有可能存在相同的记录。(在未提交前即使有关键字约束,也不会报错的),如果在Before Cancel中删除记录时,定位就会出错。不知道你还有没有其他的方法.
to hcm0790 : 小弟菜鸟,不知道如何用接口实现,请指点一二。
to 落木潇潇 :真不好意思,我没有明白你的意思。
能不能采用一个笨办法,因为在Delta封包中更新的数据保存了新旧值及当前值,在取消时,将旧值代入修改字段,而将insert,delete提交。
在cancle的procedure中加两个参数:
DeltaDS:TClientDataSet;UpDateKind:TUpDateKind
再加一个判断
if UpdateKind=ukModify then
clientdataset1.parambyname('fieldname').value:=DeltaDS.fieldByname('fieldname').oldvalue;