1,217
社区成员




'-------------------------------------
' 名称:SP_FORSQL
' 功能:3G版本,把SQL命令转到存储过程进行事务处理
' 在写任务的时候,原来的写命令表,任务对应表,都是单独的SQL执行,没有使用事务控制,会产生错误。
' 现在不修改以前的SQL语句,只把几条SQL转到存储过程来执行,加上事务控制
' 参数:
' SqlCMD1 第一条SQL语句
' SqlCMD2 第二条SQL语句
' SqlCMD3 第三条SQL语句
' 程序编写:ZXY
' 日期: 2009年11月12日
'-------------------------------------
Public Sub SP_FORSQL(Optional ByVal SqlCMD1 As String = "", Optional ByVal SqlCMD2 As String = "", Optional ByVal SqlCMD3 As String = "", Optional ByVal SqlCMD4 As String = "", Optional ByVal SqlCMD5 As String = "")
Dim cmd As New ADODB.Command
Dim par As ADODB.Parameter
Dim OrderID As Long
Dim rs As New ADODB.Recordset
'On Error GoTo Myerror
With cmd
.ActiveConnection = cnn
.CommandType = adCmdStoredProc
.CommandText = "SP_FORSQL"
Set par = .CreateParameter("@SqlCMD1", adVarWChar, adParamInput, 8000, SqlCMD1)
.Parameters.Append par
Set par = .CreateParameter("@SqlCMD2", adVarWChar, adParamInput, 8000, SqlCMD2)
.Parameters.Append par
Set par = .CreateParameter("@SqlCMD3", adVarWChar, adParamInput, 8000, SqlCMD3)
.Parameters.Append par
Set par = .CreateParameter("@SqlCMD4", adVarWChar, adParamInput, 8000, SqlCMD4)
.Parameters.Append par
Set par = .CreateParameter("@SqlCMD5", adVarWChar, adParamInput, 8000, SqlCMD5)
.Parameters.Append par
.Execute
End With
'cnn.BeginTrans
' If SqlCMD1 <> "" Then cnn.Execute SqlCMD1
' If SqlCMD2 <> "" Then cnn.Execute SqlCMD2
' Set rs = cnn.Execute("SELECT MAX(order_id) AS a FROM orderoperate")
' OrderID = rs.Fields(0).Value
' If SqlCMD3 <> "" Then cnn.Execute Replace(SqlCMD3, "?", OrderID)
'
'cnn.CommitTrans
'Myerror:
'cnn.RollbackTrans
' MsgBox Err.Description
End Sub