Comment récupérer le retour d'une procédure stockée [Résolu]

Messages postés
11
Date d'inscription
lundi 24 mai 2004
Dernière intervention
4 février 2009
- - Dernière réponse : Romain_cim
Messages postés
11
Date d'inscription
lundi 24 mai 2004
Dernière intervention
4 février 2009
- 18 janv. 2006 à 16:11
Bonjour,

Je développe en ASP avec une base de donnée DB2 qui comporte une procédure stockée. Cette procédure stockée incrémente une valeur dans une table et renvoie l'enregistrement correspondant.
Ma procédure stockée s'appelle proc_ide_ft qui accepte un paramètre varchar(50), conn est mon objet connection et rsss est un recodset

j'éxécute cette ligne :
rsss = conn.execute("CALL proc_ide_ft('ft_numordre')")

Ma valeur s'incrémente bien dans la base mais rsss.RecordCount renvoie -1 et rsss(0) provoque une erreur : error '80020009'
Une exception s'est produite.

Pourtant ma procédure stockée renvoie bien un résultat quand j'appelle ma procédure à partir d'une invite de commande DB2 :

(j'ai même modifié le type de retour de la procédure pour qu'elle ne renvoie uniquement la valeur. Dans ce cas dans l'invite de commande on a etat du retour = 62 mais mon code asp récupère la même erreur)

Je recherche donc des infos sur la méthode de récupération du retour de ma procédure.

Merci beaucoup
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
11
Date d'inscription
lundi 24 mai 2004
Dernière intervention
4 février 2009
3
Merci
En fait, je fais les questions et les réponses car j'ai trouvé tout seul

Pour ceux que ça intéresse :

Ma méthode n'était pas du tout bonne, il faut plutôt utiliser un objet Command
Voici un exemple qui fonctionne : une fonction qui éxécute la procédure stockée en passant un paramètre et renvoi la valeur de retour de la procédure stockée.

function getNumOrdre()
CONST adParamInput = 1
CONST adParamReturnValue = 4
CONST adCmdStoredProc = 4
CONST adInteger = 3
CONST adVarChar = 200

SET cmLogin = Server.CreateObject("ADODB.Command")
cmLogin.CommandType = adCmdStoredProc
cmLogin.CommandText = "PROC_IDE_FT"
cmLogin.ActiveConnection = conn

SET prmResult = cmLogin.CreateParameter("@RETURN_VALUE", adInteger, adParamReturnValue, 4)
SET prmCode = cmLogin.CreateParameter("@ls_code", adVarChar, adParamInput, 50, "ft_numordre")

cmLogin.Parameters.Append prmResult
cmLogin.Parameters.Append prmCode

cmLogin.Execute
getNumOrdre = cmLogin.Parameters("@RETURN_VALUE")
end function

Par contre dans cet exemple ma procédure stockée renvoie une seule valeur integer et non un recorsdet comme prévu à l'origine.

Merci Romain_cim 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Romain_cim

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.