On Error GoTo testerr
    Dim obj As CDBAccess.IDBACCESS
    Dim conn As New ADODB.Connection
    conn.Provider = mconn
    conn.Open mconn
    Dim cmd As New ADODB.Command
    Dim context As ObjectContext
    Set context = GetObjectContext()
    Set obj = New CDBAccess.ImpDBACCESS
    cmd.ActiveConnection = conn
    cmd.CommandType = adCmdText
    cmd.CommandText = "Update TB_Staff Set FD_Islogon=1 where FD_StaffEName='wx'"
    cmd.Execute
    
    If Err.Number <> 0 Then
        context.SetAbort
        Exit Sub
    End If
    
    cmd.ActiveConnection = conn
    cmd.CommandType = adCmdText
    cmd.CommandText = "Updat TB_Staff Set FD_StaffCName='tiger' where FD_StaffEName='wx'"
    cmd.Execute
   
    If Err.Number <> 0 Then
        context.SetAbort
        Exit Sub
    End If
    context.SetComplete
    Exit Sub
testerr:
    context.SetAbort
第二个SQL语句执行失败,为什么第一个SQL语句所做的操作不能回滚

解决方案 »

  1.   

    需要使用事务
    connection.StartTrans
    connection.CommitTrans
    Connection.RollbackTrans
      

  2.   


        cmd.ActiveConnection = conn
        cmd.CommandType = adCmdText
        cmd.CommandText = "Updat TB_Staff Set FD_StaffCName='tiger' where FD_StaffEName='wx'"
        cmd.Execute换成
    conn.excute "Updat TB_Staff Set FD_StaffCName='tiger' where FD_StaffEName='wx'"
      

  3.   

    我知道用ADO的事务可以实现,但我现在要实现在COM+中的事务,在这里只给出一个测试例子,详细问题请见http://expert.csdn.net/Expert/topic/1671/1671390.xml?temp=.8236658