我有一个加密码的ACCESS表,可以连上,单独的什么操作都可以,更新,查询什么的
可是加了事务以后,ADOQuery1.connection.begintrans 以后的都不能执行,跳到
except rollback去了,是怎么回事啊?
不加密码的事务处理就没有这个问题,遇见过的兄弟多指教!

解决方案 »

  1.   

    access 库好象只能用一次 try except 
    你在事务处理中把try ..except 去掉试试。
      

  2.   

    不用 try except 怎么rollback啊?
      

  3.   

    而且只用了一次,没有密码的ACCESS都可以用,加了密码就要跳过了
      

  4.   

    我是说在你的事务处理过程中不能再加try ..except..
    如果还不行的话,你就要看一下你的代码了。或者帖出来看看。
      

  5.   

    没有遇到你说的问题的
    想冒昧的问一句:你是为什么需要这个ADOQuery1.connection.begintrans呢?
      

  6.   

    同时更新多个表的时候用事务啊,要不有的表更新了有的表失败了怎么办?
    代码如下:(没有密码的时候可以执行,去掉事务相关的语句也可以执行)
          with ADOQuery4 do
            begin
              proId:=ADOQuery2.FieldByName('proId').AsString;
              try
                Connection.BeginTrans;
                sql.Text:='insert into proIndex(proId,matId,num,[time]) values(%s,%s,%s,''%s'')';
                sql.Text:=Format(sql.Text,[proId,FMatId[combobox2.ItemIndex],Edit4.Text,DateTimeToStr(now)]);
                ExecSQL;
                sql.Text:='update product set hasset=''是'' where proId=%s';
                sql.Text:=Format(sql.Text,[proId]);
                ExecSQL;
                Connection.CommitTrans;
                ShowMessage('添加成功!');
                except
                  Connection.RollbackTrans;
                  ShowMessage('添加失败!');
                end;
           end;
      

  7.   

    不太清楚了,好象没有问题,
    在sql.Text:='update product set hasset=''是'' where proId=%s';
    之前加上 sql.clear;最好。替你up.