PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 05-11-2012 16:37:41

Bourdois  
Membre
Date d'inscription: 08-10-2012
Messages: 14
Pépites: 70
Banque: 0

Procédure stocker et PB

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

Code: mssql

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 


Code: pb

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

 

#2 05-11-2012 22:18:26

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Procédure stocker et PB

Bonsoir,

Les codes retours sont à récupérer en premier dans le FETCH:

Code: pb

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.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 06-11-2012 06:31:59

Bourdois  
Membre
Date d'inscription: 08-10-2012
Messages: 14
Pépites: 70
Banque: 0

Re: Procédure stocker et PB

Bonjour,

Je suis d'accord avec toi, mais pour ma connaissance personnel, j'aimerais savoir comment sa fonctionne.

Cdt

Hors ligne

 

#4 06-11-2012 08:26:36

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Procédure stocker et PB

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


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 06-11-2012 09:29:29

Ben53  
Membre Geek
Date d'inscription: 18-02-2010
Messages: 46
Pépites: 184
Banque: 0

Re: Procédure stocker et PB

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

 

#6 12-11-2012 10:38:53

Bourdois  
Membre
Date d'inscription: 08-10-2012
Messages: 14
Pépites: 70
Banque: 0

Re: Procédure stocker et PB

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22