不可能绝对避免的
把updatemode----keyonly
错误几率会很小的

解决方案 »

  1.   

    1:在服务器端强行更新.
    procedure Tchangedata.DataSetProvider1UpdateError(Sender: TObject;
      DataSet: TCustomClientDataSet; E: EUpdateError; UpdateKind: TUpdateKind;
      var Response: TResolverResponse);
    begin
    response:=rrapply;
    end;
    2;在客户端由用户决定:
    procedure TForm1.ClientDataSet1ReconcileError(
      DataSet: TCustomClientDataSet; E: EReconcileError;
      UpdateKind: TUpdateKind; var Action: TReconcileAction);
    begin
       showmessage('已有用户更新数据,请重新更新 ');
       action:=rarefresh;end;