【发布时间】:2011-11-08 21:40:37
【问题描述】:
我正在使用带有 ADO 的 ASP 经典,连接到 SQL Server 2008。
我继承了这段代码,它被严重破坏了,我将尝试重新创建相关部分。如果您需要更多详细信息或我遗漏了什么,请告诉我。
我创建一个命令并添加参数
oCmd.CommandType = adCmdStoredProc
...
oCmd.Parameters.Append oCmd.CreateParameter("@MyOutputParam", adInteger, adParamOutput, 4, NULL)
稍后,我从该命令打开一个阅读器:
oRS.Open oCmd, , adOpenForwardOnly, adLockReadOnly
之后,当 oRS 打开但在我读取任何记录或值之前,我尝试使用以下行中的 一个 获取输出参数的值:
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,但没有成功。
还有其他方法需要我处理输出参数吗?
我返回记录集和输出参数可以吗?
【问题讨论】:
标签: sql-server asp-classic ado