jac*_*jac 10
所述的BeginTrans方法可被用作返回事务的嵌套级别的函数.如果您创建一个属性来存储它,您可以在需要的地方查看它是否大于0.当您提交或回滚时,您需要自己减少属性.
Private m_TransLevel As Long
Public Property Get TransactionLevel() As Long
TransactionLevel = m_TransLevel
End Property
Public Property Let TransactionLevel(vLevel As Long)
m_TransLevel = vLevel
End Property
Public Sub SaveMyData()
TransactionLevel = adoConnection.BeginTrans()
...
End Sub
Run Code Online (Sandbox Code Playgroud)
如果级别> 1,您还可以调整返回值以在返回True/False的函数内工作.我也不喜欢这样,但它看起来像这样(没有错误处理)
Public Function IsConnectionInsideTransaction(ByVal vADOConnection as ADOBD.Connection) As Boolean
Dim intLevel As Integer
If vADOConnection.State = AdStateOpen Then
intLevel = vADOConnection.BeginTrans()
IsConnectionInsideTransaction = (intLevel > 1)
vADOConnection.RollbackTrans
End If
End Function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15320 次 |
| 最近记录: |