java中有
con.setAutoCommit(false);delphi中没有找到解决的方法,不知道应该怎么样设置难道只能通过
ADOConn.BeginTrans;
try
  ...
  ADOConn.CommitTrans;
execpt
  ADOConn.RollbackTrans;
end;
这样去处理?我不想一开始就开启事务,不想每个conn都BeginTrans;只是想不自己提交就可以了请教了,谢谢

解决方案 »

  1.   

    你不寫ADOConn.BeginTrans;就不會啟動交易
      

  2.   

    不想提交,写个按钮取消就可以了,ADOQuery.Cancel;
      

  3.   

    你在数据集控件(query,table,adoquery)的 beforescroll事件中加上adoquery.Cancel,好像只能这样.
      

  4.   

    谢谢,我不操作数据集控件
    我只要conn不自动提交如果不写ADOConn.BeginTrans;,就会自动提交上去了我想先把con.setAutoCommit(false);和java一样然后要提交的地方在commit
      

  5.   

    如果你只用ADOConn控件的话
    然后再执行Execute(sql)我想就只能用你说的那个方法了
      

  6.   

    是啊,你要用commit,就应该用BeginTrans,它们是配对的
      

  7.   

    晃是使用缓存更新呢
    设.ADODataset.LockType:=ltBatchOptimistic;
    提交时用
    adodataset1.UpdateBatch();
    取消用
     adodataset1.CancelBatch;
      

  8.   

    好像query等都不能实现啊,不过我建议你使用ClientDataSet,这个组件是使用缓存更新的,拟修改的所有数据都在本地内存里,除非你明确调用它的ApplyUpdate