我用谷歌搜索,但没有一个解决方案似乎适合我! 我在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参数值答案 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用户的凭据......
答案 1 :(得分:0)
经过长时间的长期调查后,我想要做的事情似乎是不可能的(但它是在.NET中)。似乎我需要执行两次命令,第一次获取输出参数值然后下次显示结果。可怕。赞美.NET!
答案 2 :(得分:0)
COM世界中的大多数集合使用从零开始的索引。尝试使用Parameters(0)
作为输入参数,Parameters(1)
作为输出参数。