在vb6中写事务处理,对表A,B,C添加记录,如有错误全部返回,怎么写啊?可以给个比较全的源代码么?(RDO) 谢了!!

解决方案 »

  1.   

    数据库是ORACLE 9I,连接和执行sql语句的函数已经写完,出错处理也ok了
      

  2.   

    on error goto lblerr
    adocn.begintrans
     ...
     adocn.execute "insert..."
     adocn.execute "insert..."
     adocn.execute "insert..."
    adocn.comminttrans
    exit sub
    lblerr:
      adocn.rollbacktrans
      

  3.   

    借别人的代码,给你看看,有没有帮助
    再讲三种结构:
    第一:
    private sub TSave()
    cn.begintrans
    on error goto InsertErr
        cn.execute(SQL语句)
        cn.CommitTrans
        exit sub 
    InsertErr:
        cn.RollbackTrans
        msgbox "ERROR",vbinformation,"AAA"
    end sub
    第二:
    private sub TSave()
    dim rsMain as new adodb.recordset‘主表
    dim rsDetail as new adodb.recordset’明细表
    连接自己写
      

  4.   

    cn.begintrans
    on error goto InsertErr
         with rsmain
               .addnew
               .fields(0).value=text1.text
               .................
               .update
          end with
          for i=0 to txt.count-1
                with rsdetail
                     .addnew
                     .fields(i).value=txt(i).text
                     ...........
                     .update
                end with
           next 
           cn.CommitTrans
           exit sub 
    InsertErr:
        cn.RollbackTrans
        msgbox "ERROR",vbinformation,"AAA"
    end sub
    第三:(大型数据库SQL Server)
    private sub TSave()
    dim sqlstr as string
    sqlstr="Begin trans insert into table(field1,....fieldn) values(value1,value2.....valuen) comm trans"
    cn.execute(sqlstr)
    end sub
      

  5.   

    On Error GoTo ErrHandle
        CN.BeginTrans    CN.Execute "insert into table1 ........"
        CN.Execute "insert into table2 ........"    CN.CommitTrans
        Exit Sub
    ErrHandle:
        CN.RollbackTrans