+ -
当前位置:首页 → 问答吧 → VB中如何获得事务提交后的状态?

VB中如何获得事务提交后的状态?

时间:2011-07-25

来源:互联网

现在的情况是,如果SQL语句有错,会自动回滚,如果无错则提交事务。但问题是无论回滚或提交都不会返回错误信息,所以无法直观的知道是否提交成功

我的VB语句是这样的 :
VB code

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 If




strAdoSQL为之前组成的SQL语句组,有几个语句拼接而成的。

现在就是 就算有回滚,也不会跳到TransErr这里。


所以,我想请问下,有什么方法可以知道事务执行后究竟是回滚还是提交成功啊???

作者: szbory   发布时间: 2011-07-25

执行一次查询,看看之前的操作是否有效

作者: Veron_04   发布时间: 2011-07-25

引用 1 楼 veron_04 的回复:

执行一次查询,看看之前的操作是否有效


额~~还有没更直接的办法呢? 比如可以通过什么状态值来获取是执行还是回滚呢 就像STATE那些一样

作者: szbory   发布时间: 2011-07-25

数据的Rockback与Error是两个概念,从你代码来看,只有代码发生错误了,才跳至TransErr: '事务错误处理。

作者: cnuser1   发布时间: 2011-07-25

引用 3 楼 cnuser1 的回复:

数据的Rockback与Error是两个概念,从你代码来看,只有代码发生错误了,才跳至TransErr: '事务错误处理。


是的是的, 现在就只不知道如何才能获取事务是否是回滚了

作者: szbory   发布时间: 2011-07-25