现在的情况是,如果SQL语句有错,会自动回滚,如果无错则提交事务。但问题是无论回滚或提交都不会返回错误信息,所以无法直观的知道是否提交成功我的VB语句是这样的 :On Error GoTo TransErr
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.ConnectionString = PublicStr
cn.Open
cn.BeginTrans
cn.Execute (strAdoSQL)
cn.CommitTrans
MsgBox "所选操作成功!", 0 + 48, "操作成功!" Set cn = Nothing
End If
TransErr: '事务错误处理
Screen.MousePointer = 0
If Err.Number <> 0 Then
cn.RollbackTrans
MsgBox "所选操作失败!", 0 + 48, "操作失败!"
If cn.State <> 0 Then cn.Close
Exit Sub
End IfstrAdoSQL为之前组成的SQL语句组,有几个语句拼接而成的。现在就是 就算有回滚,也不会跳到TransErr这里。
所以,我想请问下,有什么方法可以知道事务执行后究竟是回滚还是提交成功啊???
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.ConnectionString = PublicStr
cn.Open
cn.BeginTrans
cn.Execute (strAdoSQL)
cn.CommitTrans
MsgBox "所选操作成功!", 0 + 48, "操作成功!" Set cn = Nothing
End If
TransErr: '事务错误处理
Screen.MousePointer = 0
If Err.Number <> 0 Then
cn.RollbackTrans
MsgBox "所选操作失败!", 0 + 48, "操作失败!"
If cn.State <> 0 Then cn.Close
Exit Sub
End IfstrAdoSQL为之前组成的SQL语句组,有几个语句拼接而成的。现在就是 就算有回滚,也不会跳到TransErr这里。
所以,我想请问下,有什么方法可以知道事务执行后究竟是回滚还是提交成功啊???
额~~还有没更直接的办法呢? 比如可以通过什么状态值来获取是执行还是回滚呢 就像STATE那些一样
Dim WithEvents objConnection As ADODB.ConnectionPrivate Sub objConnection_RollbackTransComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)End Sub