【发布时间】:2026-01-07 14:20:04
【问题描述】:
我正在使用经典的 asp 并使用存储过程。我必须得到存储过程输出参数的值。这是我的代码
<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<!-- METADATA TYPE="TypeLib" NAME="Microsoft ADO Type Library" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->
<%
Dim value
Dim i
set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=SQLOLEDB;Server=aliba\SQLEXPRESS;Database=dummySP;Trusted_Connection=Yes;"
Set Comm = Server.CreateObject("ADODB.Command")
comm.ActiveConnection = con
comm.CommandText = "sp_dummy"
'comm.NamedParameters=true
comm.CommandType = adCmdStoredProc
comm.Parameters.Append comm.CreateParameter("@weight" , adVarchar,adParamInput, 50, "hello")
'comm.Parameters.Append comm.CreateParameter("PRODUCT", adVarchar, adParamInput,50, producttype )
'comm.Parameters.Append comm.CreateParameter("ACCOUNT", adVarchar, adParamInput,100, "" )
comm.Parameters.Append comm.CreateParameter("@pris", adVarchar, adParamOutput,50) 'output parameters
'i=comm.Execute
comm.Execute
value=comm.Parameters("@pris").Value
Response.Write("Value is")
Response.Write(value)
pris 的值没有显示在输出中。我不知道这有什么问题。
我点击了这个链接(Calling SQL Stored Procedure with Output Parameter in VBScript)但没有成功
它给了我以下错误
值是
响应对象错误 'ASP 0185 : 8002000e'
缺少默认属性
/StoreProcedure.asp,第 0 行
找不到对象的默认属性。
这是我的存储过程
ALTER procedure [dbo].[sp_dummy]
@weight nvarchar(50),
@pris nvarchar(50)= null out
as
begin
select @pris = pris from sp_dummy_table where weight= @weight
end
【问题讨论】:
-
在
ADODB.Command运行Execute()方法之前,您无法获取adParamOutput参数的值。 Execute*() 必须运行以从存储过程中检索输出并填充参数。我认为错误是因为您的value=行不正确,请将其移至comm.execute下面并尝试value = comm.Parameters("Pris").Value。还要记住.Append所有参数按存储过程期望的顺序,否则你会遇到问题。 -
@Lankymart 我只是按照你说的做了,但仍然给我同样的错误。
-
我是否需要添加其他内容,只需编辑代码
-
如果您发布存储过程定义而不是全部内容,这将有所帮助
ALTER PROCEDURE [schema.name] @parameter1, @parameter2, ... AS将帮助我锻炼您需要的明智参数定义(假设您使用的是 SQL Server) i>. -
是的,我正在使用 SQL 服务器并上传了 SP
标签: stored-procedures vbscript asp-classic out-parameters