我使用DataEnvironment设计器访问数据库,需要执行一个SQL后台函数,在执行此函数之前我先执行了 BeginTrans语句,之后跟据返回的值判断执行CommitTrans还是Rollback语句,但是执行Rollback语句后无法撤消SQL函数中的改动,请高手帮忙。下面是源码:
strSQLFun = "select f_preorder_submit(" + strFieldId + _
",'" + strBankCardNum + "','" + strUserId + "','" + strInterval + "')"
DataE.Commands("cmdFunPreOrder").CommandText = strSQLFun
DataE.conDataLib.Close
DataE.conDataLib.Open
BeginTrans
DataE.cmdFunPreOrder
strFunResult = DataE.rscmdFunPreOrder.Fields(0)
If Mid(strFunResult, 1, 8) = "LINE_ID^" Then
CommitTrans
MsgBox "成功!"
Else
Rollback
MsgBox "失败!"
End If
strSQLFun = "select f_preorder_submit(" + strFieldId + _
",'" + strBankCardNum + "','" + strUserId + "','" + strInterval + "')"
DataE.Commands("cmdFunPreOrder").CommandText = strSQLFun
DataE.conDataLib.Close
DataE.conDataLib.Open
BeginTrans
DataE.cmdFunPreOrder
strFunResult = DataE.rscmdFunPreOrder.Fields(0)
If Mid(strFunResult, 1, 8) = "LINE_ID^" Then
CommitTrans
MsgBox "成功!"
Else
Rollback
MsgBox "失败!"
End If
",'" + strBankCardNum + "','" + strUserId + "','" + strInterval + "')"
BeginTrans
DataE.Commands("cmdFunPreOrder").CommandText = strSQLFun
DataE.conDataLib.Close
DataE.conDataLib.Open
DataE.cmdFunPreOrder
strFunResult = DataE.rscmdFunPreOrder.Fields(0)
If Mid(strFunResult, 1, 8) = "LINE_ID^" Then
CommitTrans
MsgBox "成功!"
Else
Rollback
MsgBox "失败!"
End
放前面试试
",'" + strBankCardNum + "','" + strUserId + "','" + strInterval + "')"
DataE.conDataLib.Close
DataE.conDataLib.Open
DataE.Commands("cmdFunPreOrder").CommandText = strSQLFun DataE.conDataLib.BeginTrans
DataE.cmdFunPreOrder
strFunResult = DataE.rscmdFunPreOrder.Fields(0)
If Mid(strFunResult, 1, 8) = "LINE_ID^" Then
DataE.conDataLib.CommitTrans
MsgBox "成功!"
Else
DataE.conDataLib.RollbackTrans
MsgBox "失败!"
End