在 SELECT 语句中使用与参数查询相同的方法,也可以从一个过程中获取输出参数。
获取输出参数
查询完全执行完毕后,从 rdoParameters 集合检索输出参数值。
本例执行了一个存储过程,该过程带有二个输入参数,返回二个输出参数以及一个返回值参数。注意,SQL 查询在 rdoQuery 中使用了 ODBC 语法,如果要求存储过程返回输出参数,那么这是必要的。
Dim SQL As String, MyOutputVal1 As Variant Dim MyOutputVal2 As Variant, MyRetValue As Variant _ rs As rdoResultset Dim Ps As rdoQuery '
使用命名自变量打开连接。Dim cn as New rdoConnection
With cn
.Connect = "dsn=Sequel;uid=;pwd=;database=workdb"
.EstablishConnection Prompt:=rdDriverNoPrompt
End With
'
使用ODBC
参数自变量语法。'
注意每一个输入参数都用“?”标识,'
其中一个对应于返回值,'
两个分别对应于每一个输入参数,'
另外两个对应于每一个输出参数。SQL = "{? = call TestOutputRS (?, ?, ?, ?) }"
'
创建可以重复使用的rdoQuery
。Set Ps = cn.CreateQuery("PsTest", SQL)
'
为每一个输出参数和返回值参数'
设置参数"direction"
。Ps(0).Direction = rdParamReturnValue
Ps(3).Direction = rdParamOutput
Ps(4).Direction = rdParamOutput
'
设定输入参数值。Ps.rdoParameters(1) = "Test%"
Ps.rdoParameters(2) = 1
'
创建结果集并置入Ps
值。Set rs = Ps.OpenResultset(rdOpenStatic)
MyRetValue = Ps(0) '
返回值参数。MyOutputVal1 = Ps(3) '
第一个输出参数。MyOutputVal2 = Ps(4) '
第二个输出参数。