在经典的asp

时间:2015-08-13 08:03:05

标签: stored-procedures vbscript asp-classic out-parameters

我正在使用经典的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

1 个答案:

答案 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

希望这有帮助。