我正在使用经典的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
答案 0 :(得分:0)
我建议您使用SELECT关闭SP,以便从Recordset获取值。
SELECT OutPRIS=@pris
然后在你的ASP代码中:
Set rsComm = comm.Execute
If Not rsComm.EOF Then
myPRIS = rsComm.Fields("OutPRIS").Value
Else
myPRIS = Null
End If
rsComm.Close
Set rsComm = Nothing
希望这有帮助。