我的语句:
try
        ADOConnection.BeginTrans;        ADOCommand.CommandText:='INSERT INTO AA SELECT * FROM BB';
        ADOCommand.Execute;        ADOConnection.CommitTrans;
except
        ADOConnection.RollbackTrans;
end;报错:其他会话正在使用事务的上下文什么原因?谢谢!

解决方案 »

  1.   

    你之前beginTrans过一次,然后这里又再次beginTrans吧?
      

  2.   

    事务不能嵌套,你只能在一个会话中使用事务!
    也就是说:

    try
            ADOConnection.BeginTrans;        ADOCommand.CommandText:='INSERT INTO AA SELECT * FROM BB';
            ADOCommand.Execute;        ADOConnection.CommitTrans;
    except
            ADOConnection.RollbackTrans;
    end; 
    之前和之后都不能有类似ADOConnection.BeginTrans;的语句!
      

  3.   

    ADOConnection.BeginTrans;
    ADOConnection.CommitTrans;
    不配对,你查看一下你前面是不是打开事务了。