如题,今天去面试,面邻的就是这个问题,我不会。两个access数据文件 :db1.mdb   db2.mdb我用两个Connection 联接后 conn1  conn2  要执行两条更新 sql1    sql2请问如何实现事务处理????

解决方案 »

  1.   

    可以自己控制事务,不过不太可靠,如:
    Private Sub Command1_Click()
        On Error GoTo ErrHandler
        cn1.BeginTrans
        cn2.BeginTrans
        cn1.Execute "insert ..."
        cn2.Execute "insert ..."
        cn1.CommitTrans
        cn2.CommitTrans
        Exit Sub
    ErrHandler:
        cn1.RollbackTrans
        cn2.RollbackTrans    
        Exit Sub
    End SubDTC(分布式事务协调)就是专门做这个的,不过需要使用MTS。
      

  2.   

    to fj182(阿花) ,为何说这种方法不可靠??
      

  3.   

    Private Sub Command1_Click()
        On Error GoTo ErrHandler
        cn1.BeginTrans
        cn2.BeginTrans
        cn1.Execute "insert ..."
        cn2.Execute "insert ..."
        cn1.CommitTrans
        cn2.CommitTrans
        Exit Sub
    ErrHandler:
        cn1.RollbackTrans
        cn2.RollbackTrans    
        Exit Sub
    End Sub
      

  4.   

    最可靠的就是采取基于COM+的事务处理了。
    用VB编写ACTIVEX DLL操作db1.mdb,db2.mdb,然后注册到COM+组件中,
    再用VB编写EXE工程调用该DLL的方法就可以实现事务处理了。