关于VB调用存储过程的参数传递问题
在列程序段执行成功过,但在另一应用程序过不了。
Dim adoconn As New ADODB.Connection
Dim adocomm As New ADODB.Command
adoconn.ConnectionString = PublicStr
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = ProcStr
adocomm.CommandType = adCmdStoredProc
adocomm.Parameters(1) = "1 "
adocomm.Parameters(2) = "OutputParameters "
adocomm.Execute
执行到
adocomm.Parameters(1) = "1 "
报错:在对应所需名称或参数的集合中,未找到项目。
若用:
Dim ADOPrm As New ADODB.Parameter
Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, adParamOutput)
ADOCmd.Parameters.Append ADOPrm
可以。
但因调用的执行程序是公共模块,对调用的程序过程参数是不定,且数据类型也不同,请问能有什么好的处理办法?
------解决方案--------------------Dim adoconn As New ADODB.Connection
Dim adocomm As New ADODB.Command
adoconn.ConnectionString = PublicStr
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = ProcStr
adocomm.CommandType = adCmdStoredProc
adocomm.Parameters.Refresh ' '** 加上这句,自动取参数,这样后面的参数引用才生效
adocomm.Parameters(1) = "1 "
adocomm.Parameters(2) = "OutputParameters "
adocomm.Execute