Je travaille avec ASP classique et en utilisant la procédure stockée. Je dois obtenir la valeur de la procédure stockée hors paramètre. Ceci est mon codesortir la valeur du paramètre de la procédure stockée dans l'asp classique
<% @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)
La valeur de pris ne s'affiche pas en sortie. Je n'ai aucune idée de ce qui ne va pas.
J'ai suivi ce lien (Calling SQL Stored Procedure with Output Parameter in VBScript) mais n'obtient pas le succès
Il me donne erreur suivant
valeur est
erreur objet Response 'ASP 0185: 8002000e'
Propriété par défaut manquante
/StoreProcedure.asp , ligne 0
Une propriété par défaut n'a pas été trouvée pour l'objet.
Voici ma procédure stockée
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
Vous ne pouvez pas obtenir la valeur d'un paramètre 'adParamOutput' tant que ADODB.Command' n'a pas exécuté la méthode' Execute() '. Execute *() doit s'exécuter pour récupérer la sortie de la procédure stockée et remplir le paramètre. L'erreur que je pense est parce que votre ligne 'value =' est incorrecte, déplacez-la au-dessous de 'comm.execute' et essayez' value = comm.Parameters ("Pris"). Value'. Souvenez-vous également de '.Append' tous les paramètres dans l'ordre prévu par la procédure stockée ou vous aurez des problèmes. – Lankymart
@Lankymart Je viens de faire ce que vous avez dit, mais toujours me donner la même erreur. –
dois-je ajouter quelque chose d'autre, il suffit d'éditer le code –