以前我一直使用TQuery控件,该控件须手动提交。但TADOQuery却自动提交了。
   请问有谁知道怎样使TADOQuery也手动提交?
Var
  qry :TQuery ;
begin
  with qry do
  begin
    SQL.Clear;
    SQL.Add('UPDATE AAA SET A = B')
    ExecSQL;
    SQL.Clear;
    SQL.Add(ROLLBACK')
    ExecSQL;
  end;
end; 
数据库中信息未做更改
Var
  qry :TADOQuery ;
begin
  with qry do
  begin
    SQL.Close;
    SQL.Clear;
    SQL.Add('UPDATE AAA SET A = B')
    ExecSQL;
    SQL.Close;
    SQL.Clear;
    SQL.Add(ROLLBACK')
    ExecSQL;
  end;
end; 
数据库中信息更改完成。

解决方案 »

  1.   

    设置
    AdoQuery.LockType = ltReadOnly;
    试试,不能确定是不是这个问题哈。
      

  2.   

    ADOConnection1.BeginTrans 启动事务
    这时不是自动提交提交ADOConnection1.CommitTrans 
    否则ADOConnection1.RollbackTrans
      

  3.   

    把LockType设为:ltBatchOptimistic//缓存形式
    再用ADOQuery1.UpdateBatch(arall);提交
      

  4.   

    谢谢大家的帮忙。我采取了kaguo的方式,很成功。
      

  5.   

    谢谢大家的帮忙。我采取了kaguo的方式,很成功。