Я работаю с классическим asp и использую хранимую процедуру. Я должен получить параметр параметра хранимой процедуры. Это мой кодполучить значение параметра хранимой процедуры в классическом 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), но не получает успех
Это дает мне следующее сообщение об ошибке
Значение
Response Ошибка объекта '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
Вы не можете получить значение параметра adParamOutput, пока 'ADODB.Command' не выполнит метод' Execute() '. Выполнение *() должно выполняться для получения результата из хранимой процедуры и заполнения этого параметра. Ошибка, я думаю, потому, что ваша строка 'value =' неверна, переместите ее под 'comm.execute' и попробуйте' value = comm.Parameters («Pris»). Value'. Также запомните «.Append» все параметры в том порядке, в котором ожидает хранимая процедура, или у вас возникнут проблемы. – Lankymart
@ Lankymart Я просто сделал то, что вы сказали, но все же дал мне ту же ошибку. –
Мне нужно добавить что-то еще, просто отредактируйте код –