我在写程序的时候发现用.UDL文件连接数据库的时候,调存储过程就会报错,用
lsServer = "192.168.10.2"
lsDatabase = "hefei"
lsUser = "sa"
lsPWD = "" gsConnString = "driver={SQL Server};User ID = " + lsUser + _
";Pwd=" & lsPWD + _
";Database=" + lsDatabase + _
";Server=" + lsServer
gconnHFRQ.ConnectionString = gsConnString
gconnHFRQ.Open
方法就没问题。
请问正确地调用存储过程的方法。
lsServer = "192.168.10.2"
lsDatabase = "hefei"
lsUser = "sa"
lsPWD = "" gsConnString = "driver={SQL Server};User ID = " + lsUser + _
";Pwd=" & lsPWD + _
";Database=" + lsDatabase + _
";Server=" + lsServer
gconnHFRQ.ConnectionString = gsConnString
gconnHFRQ.Open
方法就没问题。
请问正确地调用存储过程的方法。
rs.open "exec CustOrdersDetail(10250)"
msgbox rs.recordcount
.CommandType=adCmdStoredProc
.CommandText=存储过程名
.Open
End With
当然如果存储过程需要参数传递的话,你需要为Recordset建立一个Parameters,并指明参数。
pubConn.CursorLocation = adUseClient
pubConn.Open strConn strSQL = "exec procInsert_tabxy "
rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
很簡單啊!
Dim Cmd_Sc As Command '定义一个command对象,用于执行存储过程
Set Cmd_Sc = New Command
Cmd_Sc.ActiveConnection = gconnHFRQ'指定command的连接对象gconnHFRQ
Cmd_Sc.CommandType = adCmdStoredProc'指定command的命令类型,存储过程adStoredProc
Cmd_Sc.CommandText = "删除记帐凭证" '执行存储过程名称
Cmd_Sc.Parameters("@xh") = CInt(LV.SelectedItem.Text) 给存储过程的@xh输入参数赋值
Cmd_Sc.Parameters("@czy") = Yhm '给@czy赋值
Cmd_Sc.Execute '执行存储过程
If Cmd_Sc.Parameters("@cgbz") = "0" Then '判断输出参数@cgbz的值
MsgBox Cmd_Sc.Parameters("@fhxx"), vbCritical '显示输出参数@fhxx的值
Else
MsgBox Cmd_Sc.Parameters("@fhxx"), vbInformation
End If
dim Rs as recordset
set Rs =new recordset
set rs=Cmd_Sc.execute