Pas de problème (pb), que du PowerBuilder (PB) ^^

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