输出参数和存储过程

时间:2013-01-29 10:52:11

标签: asp-classic

我用谷歌搜索,但没有一个解决方案似乎适合我! 我在SQL Server中有一个SPROC,它有一个输入参数,还有一个在SPROC中设置的输出参数。

使用经典ASP,我想检索该输出参数的值,但似乎没有设置(但我可以看到输出参数在SQL Server Management Studio中执行时正常工作)

OpenConnection

Set cmdTemp = Server.CreateObject("ADODB.Command")
cmdTemp.CommandType = 4 'adCmdStoredProc
Set cmdTemp.ActiveConnection = dbConn
cmdTemp.CommandText =  "GetCerts"   
cmdTemp.Parameters.Refresh
cmdTemp.Parameters(1) = "ABC123"
cmdTemp.Parameters(2).Direction = 2 'Output

Set reader = cmdTemp.Execute

Response.Write(cmdTemp.Parameters(2)) ' Nothing is displayed at all. 

CloseConnection

我尝试使用命名参数方法,但总是得到一个错误,说参数超出范围,错误的参数或错误的类型(类似于此)。

真的......头疼。我只想要从SPROC(SPROC中的第二个参数)

设置OUTPUT参数值

3 个答案:

答案 0 :(得分:0)

检查错误:

Set reader = cmdTemp.Execute

If Err.number <> 0 or  dbConn.Errors.Count <> 0 Then
   'Do something to handle the error
End If

您是否有权执行存储过程?即ASP用户的凭据......

Execute Stored Procedure from Classic ASP

答案 1 :(得分:0)

经过长时间的长期调查后,我想要做的事情似乎是不可能的(但它是在.NET中)。似乎我需要执行两次命令,第一次获取输出参数值然后下次显示结果。可怕。赞美.NET!

答案 2 :(得分:0)

COM世界中的大多数集合使用从零开始的索引。尝试使用Parameters(0)作为输入参数,Parameters(1)作为输出参数。