我使用 ASP classic 和 ADO,连接到 SQL Server 2008。
我继承了这段代码,它被严重破坏了,我将尝试重新创建相关部分。如果您需要更多详细信息或者我遗漏了某些内容,请告诉我。
我创建一个命令并添加参数
oCmd.CommandType = adCmdStoredProc
...
oCmd.Parameters.Append oCmd.CreateParameter("@MyOutputParam", adInteger, adParamOutput, 4, NULL)
后来,我从该命令打开一个阅读器:
oRS.Open oCmd, , adOpenForwardOnly, adLockReadOnly
之后,当 oRS 打开但在读取任何记录或值之前,我尝试使用以下命令获取输出参数的值one以下几行:
val1 = oCmd("@MyOutputParam")
val2 = oCmd("@MyOutputParam").Value
val3 = oCmd.Parameters("@MyOutputParam").Value
所有三个(val1、val2、val3)变量均为 DB NULL。
我已确认在查询分析器中运行 SP 会向 @MyOutputParam 参数返回一个值:
declare @p33 int
exec usp_GetResultAndOutput 1, 2, 3, @p33 output
select @p33
这将返回我的预期记录的记录集和在单行中显示数字的第二个记录集。
我什至尝试在尝试获取输出参数之前调用 rs.NextRecordset ,但这不起作用。
我需要使用其他方法来处理输出参数吗?
我可以返回记录集和输出参数吗?