各位,想请教一个问题:Delphi ADO,SQL Server 2000,缓存模式(Lock type:ltBatchOptimistic),当数据正要保存的时候或者保存到一半的时候网络被断开了,之后又接通了,如果点保存的话会提示出错.请问这样的情况下该怎么样来保存数据,不会又要重新将数据录一遍吧?
最好提供代码,谢谢!

解决方案 »

  1.   

    代碼沒有,給個提示,如果你的網絡很不穩定時請參考一下:
    不要太依靠ADOConnection,把数据封装进对象中,对数据的修改新增全部真对对象中数据的修改,直到真正更新数据时才用ADOConnection连接,这样可以解决你的问题.
      

  2.   

    ADO本身不能实现这功能,前段时间我也琢磨了好久了。答案是没办法
    不过通过DATASET.SAVETOFILE的方法
    再载入倒是可以实现功能太麻烦了。我都懒得去作。本来想用事务提交,在DS打开完就断开与ADO的连接这样ADO就可以自由打开关闭了,不过还是有问题。
    发现掉线后再上线再更新只更新最前面一条记录进去,其它的都不更新啦
    真郁闷。。、
    //  提交事务处理
    function TdmClient.commitUpdate(ADOCon:TADOConnection;DataSet:TCustomADODataSet): Integer;
    begin
      Result := 1;
      try
        DataSet.Connection := nil;
        ADOCon.Close;
        ADOCon.Open;
        DataSet.Connection := adocon;
        ADOCon.BeginTrans;
        DataSet.UpdateBatch;
        ADOCon.CommitTrans;
      except
        ADOCon.RollbackTrans;
        Result := 0;
      end;
    end;