Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je voudrais savoir comment on peut récupérer une information émanant d’une procédure stocker: via la procédure ci-dessous, je veux récupérer @Code_Retour au niveau de PB, comment on fait pour passer la variable et comment on la récupère ?
en exemple la procédure et le code PB
Merci, de votre aide
Cdt
create procedure proc_liste_info ( @INFO_CODE integer, @Code_Retour int output) as BEGIN select INFO_CODE, INFO_TYPE, INFO_CODE_INFO, INFO_LIBELLE from INFOS where INFO_CODE = @INFO_CODE group by INFO_CODE if @@rowcount = 0 select @Code_Retour=0 else select @Code_Retour=1 end
DECLARE proc_liste_info PROCEDURE FOR proc_liste_info @INFO_CODE = :ie_infocode using SQLCA; EXECUTE proc_liste_info ; IF SQLCA.SQLCode = -1 THEN Messagebox("Sybase", "FETCH SCRIPT: " +SQLCA.SQLErrText) ELSE FETCH proc_liste_info INTO :ie_infocode, :ls_infotype, :ls_infocodeinfo, :ls_infolibelle; END IF CLOSE proc_liste_info ;
Hors ligne
Bonsoir,
Les codes retours sont à récupérer en premier dans le FETCH:
Long ll_coderetour DECLARE proc_liste_info PROCEDURE FOR proc_liste_info @INFO_CODE = :ie_infocode using SQLCA; EXECUTE proc_liste_info ; IF SQLCA.SQLCode = -1 THEN Messagebox("Sybase", "FETCH SCRIPT: " +SQLCA.SQLErrText) ELSE FETCH proc_liste_info INTO :ll_coderetour, :ie_infocode, :ls_infotype, :ls_infocodeinfo, :ls_infolibelle; END IF CLOSE proc_liste_info ;
Maintenant, pour ton exemple précis, pas besoin de code retour pour ta procédure stockée: Un simple test sur SQLCA.SQLCode = 100
t'indiquerai un "no data found" éventuel.
Hors ligne
Bonjour,
Je suis d'accord avec toi, mais pour ma connaissance personnel, j'aimerais savoir comment sa fonctionne.
Cdt
Hors ligne
Pour les paramètres en input ou en output, ça marche comme je te l'ai indiqué.
Par contre, si tu veux passer des paramètres en INPUT/OUTPUT, il te faudra passer par un RPCFUNC, et non un DECLARE...EXECUTE...FETCH
Hors ligne
Petite question, si la procédure retourne un cursor, peut on aussi gérer une variable en in/out pour le code de retour de la procédure stockée ?
Merci
Hors ligne
Bonjour,
Pouvez-vous me communiquer un exemple de code PB qui utilise la fonction RPCFUNC, plus un exemple de Procédure stocker, pour adaptation du code ci-dessus.
Cdt
Hors ligne