在 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 rdoConnectionWith cn.Connect = "dsn=Sequel;uid=;pwd=;database=workdb".EstablishConnection Prompt:=rdDriverNoPromptEnd With'使用ODBC参数自变量语法。'注意每一个输入参数都用“?”标识,'其中一个对应于返回值,'两个分别对应于每一个输入参数,'另外两个对应于每一个输出参数。SQL = "{? = call TestOutputRS (?, ?, ?, ?) }"'创建可以重复使用的rdoQuery。Set Ps = cn.CreateQuery("PsTest", SQL)'为每一个输出参数和返回值参数'设置参数"direction"。Ps(0).Direction = rdParamReturnValuePs(3).Direction = rdParamOutputPs(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) '第二个输出参数。