Stored procedures 在经典asp中获取存储过程的参数值

Stored procedures 在经典asp中获取存储过程的参数值,stored-procedures,vbscript,asp-classic,out-parameters,Stored Procedures,Vbscript,Asp Classic,Out Parameters,我正在使用经典的asp和存储过程。我必须得到存储过程out参数的值。这是我的密码 我建议您使用SELECT关闭SP,以便从记录集中获取值 选择OutPRIS=@pris 然后在ASP代码中: Set rsComm=comm.Execute 如果不是rsComm.EOF,则 myPRIS=rsComm.Fields(“OutPRIS”).值 其他的 myPRIS=Null 如果结束 通讯关闭 设置rsComm=Nothing 希望这能有所帮助。我建议您使用SELECT关闭SP,以便从记录集中

我正在使用经典的asp和存储过程。我必须得到存储过程out参数的值。这是我的密码



我建议您使用SELECT关闭SP,以便从记录集中获取值

选择OutPRIS=@pris
然后在ASP代码中:

Set rsComm=comm.Execute
如果不是rsComm.EOF,则
myPRIS=rsComm.Fields(“OutPRIS”).值
其他的
myPRIS=Null
如果结束
通讯关闭
设置rsComm=Nothing

希望这能有所帮助。

我建议您使用SELECT关闭SP,以便从记录集中获取值

选择OutPRIS=@pris
然后在ASP代码中:

Set rsComm=comm.Execute
如果不是rsComm.EOF,则
myPRIS=rsComm.Fields(“OutPRIS”).值
其他的
myPRIS=Null
如果结束
通讯关闭
设置rsComm=Nothing

希望这有帮助。

ADODB.Command
运行
Execute()
方法之前,您无法获取
adParamOutput
参数的值。必须运行Execute*()才能从存储过程中检索输出并填充参数。我认为错误是因为您的
value=
行不正确,请将其移到
comm.execute
下方,然后尝试
value=comm.Parameters(“Pris”).value
。另请记住
。按照存储过程预期的顺序追加所有参数,否则您将遇到问题。@Lankymart我刚按您所说的做了,但仍然给了我相同的错误。是否需要添加其他内容,只需编辑代码如果您发布存储过程定义,而不是全部内容,则会有所帮助,只需
ALTER-procedure[schema.name]@parameter1、@parameter2、。。。AS
将帮助我了解您需要的定义参数(假设您使用的是SQL Server)。是的,我使用的是SQL Server并上载了SPDB。在
adParamOutput
命令运行
Execute()
方法之前,您无法获取
adParamOutput
参数的值。必须运行Execute*()才能从存储过程中检索输出并填充参数。我认为错误是因为您的
value=
行不正确,请将其移到
comm.execute
下方,然后尝试
value=comm.Parameters(“Pris”).value
。另请记住
。按照存储过程预期的顺序追加所有参数,否则您将遇到问题。@Lankymart我刚按您所说的做了,但仍然给了我相同的错误。是否需要添加其他内容,只需编辑代码如果您发布存储过程定义,而不是全部内容,则会有所帮助,只需
ALTER-procedure[schema.name]@parameter1、@parameter2、。。。AS
将帮助我了解您需要的定义参数(假设您使用的是SQL Server)。是的,我使用的是SQL Server并上载了SPR。那么使用输出参数的意义是什么?您只需将一种方法替换为另一种方法。我提供了我首选且已知良好的方法的建议。它满足返回值的目标。我不确定我是否同意提供一个替代方案实际上是“否决票”的价值。它不是“已知好”实际上比仅仅返回一个输出变量效率更低。OP方法没有错,只是需要确保它被正确执行。事实上,它是“已知良好的”,因为它的功能是已知的。我不能说效率,但我可以说我没有用这种方法解决这个问题。我没有说OP方法有任何问题:我提供了一个我认为合适的替代方案。如果有人对你提供的答案投了不符合他们狭隘观点的票,我不确定你是否会觉得自己是个评判。请注意,这仍然是唯一的答案。更容易假设是我,因为我评论说,这取决于你,事实是我得到了很多反对票,虽然我觉得他们没有理由,但其他人的感觉不同,所以我继续做下去。备选方案很好,但OP询问的是
out
参数,这完全改变了上下文。返回的是一个单行单列记录集,它不是同一件事。当您想要返回一些数据并设置输出参数时会发生什么情况?那么使用输出参数的意义是什么?您只是用一种方法替换另一种方法。我提供了我首选的、已知的方法的建议。它满足返回值的目标。我不确定我是否同意提供一个替代方案实际上是“否决票”的价值。它不是“已知好”实际上比仅仅返回一个输出变量效率更低。OP方法没有错,只是需要确保它被正确执行。事实上,它是“已知良好的”,因为它的功能是已知的。我不能说效率,但我可以说我没有用这种方法解决这个问题。我没有说OP方法有任何问题:我提供了一个我认为合适的替代方案。如果有人对你提供的答案投了不符合他们狭隘观点的票,我不确定你是否会觉得自己是个评判。请注意,这仍然是唯一的答案。更容易假设是我,因为我评论说,这取决于你,事实是我得到了很多反对票,虽然我觉得他们没有理由,但其他人的感觉不同,所以我继续做下去。备选方案很好,但OP询问的是
out
参数,这完全改变了上下文。返回的是一个单行单列记录集,它不是同一件事。当您想要返回一些数据以及设置输出参数时会发生什么?