如何在DBGrid中修改或者是删除数据后, 不是马上提交到数据中,而是调用某一方法后才提交刚才的事务.还有提交事务后可以回滚到提交事务之前的那个点吗,如果可以应该怎么做?

解决方案 »

  1.   

    你直接控制与DBGRID绑定的数据集就可以了,DBGRID的数据都是来自于数据集的
      

  2.   

    如果绑定的是adoquery那具体怎么做呢?
      

  3.   

    1. 设置ADOQuery.LockType属性为ltBatchOptimistic;
    2. Cnn.BeginTrans; 
       try   
         ADOQuery1.UpdateBatch;
         Cnn.CommitTrans;
       except
         on E: Exception do
         begin
             ADOQuery1.CancelBatch;
             Cnn.Rollback;
         end;
       end;
      

  4.   

    borland 建议,最好不要使用dbgrid,因为这个控件不能保证数据的完整性。
      

  5.   

    你应该控制 DBGrid 对应的数据集,
    或者,你应该用个 stringgrid 来自己完全控制,