Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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 27-03-2009 16:23:22

Sailor LVCV  
N2I power
Lieu: Vigneux sur Seine
Date d'inscription: 04-03-2008
Messages: 54
Pépites: 1,253
Banque: 0

[RESOLU] Question sur écriture d'appel de procédure stockée

Bonjour,

Je cite un vieux message car aujourd'hui je découvre cette écriture qui est utilisé dans l'appli ... mais l'appel ne se fait pas correctement car une des variables de la procédure est en Output.
Alors ma question est comment préciser les variables en output  avec cette écriture ?
Merci

cantin_jl a écrit:

Utilisation de la procédure

Code: pb

      ls_retour = SQLCA.remplit_totalite(gs_poste, &
                                      gs_poste,&
                                      ls_ent_num, & 
                                      ls_ent_sfx, &
                                      long(ls_ent_rev), &
                                      gstr_criteres.fam, &
                                      gstr_criteres.prg, &
                                      gstr_criteres.cde, &
                                      gstr_criteres.cli, &
                                      gstr_criteres.di, &
                                      gstr_criteres.dpt, &
                                      gstr_criteres.ste, &
                                      gstr_criteres.dat_deb, &
                                      gstr_criteres.dat_fin, &
                                      gstr_criteres.qte_tra, &
                                      gstr_criteres.hyp_eta, &
                                      gstr_criteres.eta_exp, &
                                      'B')
                  
            if SQLCA.SqlCode <> 0 then
              ls_message = SqlCa.SqlErrText
              rollback;            
            end if  

Dernière modification par Sailor LVCV (30-03-2009 08:01:54)


Moi, Sailor LVCV, au nom d'Aldebaran, je vais vous punir !!!

Hors ligne

 

#2 27-03-2009 17:01:31

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [RESOLU] Question sur écriture d'appel de procédure stockée

Normalement, dans le code PowerBuilder on indique pas qu'il s'agit d'une variable IN ou OUT, par contre on indique In ou OUT lors de l'écriture de la procédure stockée dans ORACLE.

Exemple :

Code: mssql

  
PROCEDURE ma_procedure(
                ai_var1      IN OUT integer,
          al_var2                   IN OUT integer )


A vérifier   

Hors ligne

 

#3 27-03-2009 18:39:20

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

Re: [RESOLU] Question sur écriture d'appel de procédure stockée

Bonsoir chère collègue

Il me semble que les paramètres en output ne doivent pas être déclarés à l'appel de la procédure,
mais par l'intermédiaire d'un FETCH

Exemple:

Déclaration de la procédure stockée sous ORACLE:

Code: mssql

PROCEDURE my_proc ( param_1_in   IN NUMBER,
                                   param_2_in   IN VARCHAR2,
                                   param_1_out OUT NUMBER,
                                   param_2_out OUT DATE );

Appel de la procédure stockée sous PB

Code: pb

Long l_param_1_in
String s_param_2_in, s_param_1_out
DateTime dt_param_2_out

DECLARE my_proc PROCEDURE FOR my_proc( :l_param_1_in, :s_param_2_in ) USING SQLCA; //Liste des variables destinées à alimenter les paramètres en INPUT
EXECUTE my_proc;
FETCH my_proc INTO :s_param_1_out, :dt_param_2_out; //Liste des variables réceptionnant les paramètres en OUTPUT
CLOSE my_proc;


Dans le cas de l'appel d'une fonction ORACLE, c'est le même principe: Le code retour est récupéré par FETCH


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

Hors ligne

 

#4 30-03-2009 08:01:30

Sailor LVCV  
N2I power
Lieu: Vigneux sur Seine
Date d'inscription: 04-03-2008
Messages: 54
Pépites: 1,253
Banque: 0

Re: [RESOLU] Question sur écriture d'appel de procédure stockée

Bon en gros on sait pas vraiment avec cette écriture et ma méthode est la plus adaptable :
Variables en Output au niveau de la déclaration de la procédure stockée et méthode de Foon vénérable collègue ... à un détail près :

Code: pb

DECLARE up_isjourferie PROCEDURE FOR up_isjourferie
  @date = :ldt_date,
  @retour = :ll_isjourferie OUTPUT
USING SQLCA ;

EXECUTE up_isjourferie;
FETCH up_isjourferie INTO :ll_isjourferie;
CLOSE up_isjourferie;

Moi, Sailor LVCV, au nom d'Aldebaran, je vais vous punir !!!

Hors ligne

 

#5 30-03-2009 14:45:46

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

Re: [RESOLU] Question sur écriture d'appel de procédure stockée

Sailor LVCV a écrit:

Foon vénérable collègue ...

J'viens de prendre un sacré coup de vieux


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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22