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 29-01-2008 16:48:20

lolo1367  
Membre
Date d'inscription: 29-01-2008
Messages: 6
Pépites: 32
Banque: 0

Appeon - PB10.5 - Oracle9 : appel procédure stockée

Bonjour à tous,

Voilà, j'ai une application PB10.5 sous windows XP qui attaque une base de données ORACLE 9i.

Je tente d'utiliser APPEON. Mon APPEON semble bien configuré. Je peux ouvrir des datawindows qui remontent bien des données. Executer des procédures stockées à partir de datawindows.

Hélas, je n'arrive pas à faire appel à des procédures stockées dans le code PB. Le message remonte par ORACLE est ora-06550 (provlème de paramètres).

En effet, lorsque je mets une trace ORACLE, l'appel à ma procédure stockée est fait avec un paramètre(:1) alors qu'elle n'en possède pas.

Merci d'avance pour votre aide.

Lolo1367

Hors ligne

 

#2 29-01-2008 16:49:25

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

salut, comment tu lances ta procédure stockée ?

donnes un bout d'appel...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 29-01-2008 19:54:53

lolo1367  
Membre
Date d'inscription: 29-01-2008
Messages: 6
Pépites: 32
Banque: 0

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

Voici mon bout de code

Code: pb

string ls_sql

ls_sql = "EXECUTE PA_MOUVEMENT.Ajouter()"

EXECUTE IMMEDIATE ls_sql USING SQLCA ;

IF SQLCA.sqlcode <> 0 then
  RETURN Failure
END IF


Merci

Hors ligne

 

#4 29-01-2008 20:05:51

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: Appeon - PB10.5 - Oracle9 : appel procédure stockée

Bonsoir,

Et en utilisant le DECLARE/EXECUTE classique, ça ne marche pas?

Code: pb

DECLARE Ajouter PROCEDURE FOR PA_MOUVEMENT.Ajouter()
USING SQLCA;

EXECUTE Ajouter;

IF SQLCA.sqlcode <> 0 then
  RETURN Failure
END IF


PS:   et sur PBadonf


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

Hors ligne

 

#5 29-01-2008 20:11:59

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

Code: pb

string ls_sql

ls_sql = "EXECUTE PA_MOUVEMENT.Ajouter()"

EXECUTE IMMEDIATE :ls_sql USING SQLCA ;

IF SQLCA.sqlcode <> 0 then
  RETURN Failure
END IF


il manque les : apres le immediate
il faut aussi mettre autocommit à true

il n'y a pas de parametres pour ta proc ?

au fait tu es sure que c'est comme ca ?  -- >

ls_sql = "EXECUTE PA_MOUVEMENT.Ajouter()"

sous sybase, on fait plutot

ls_sql = "EXECUTE PA_MOUVEMENT.Ajouter"


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 29-01-2008 20:17:58

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

pour info, sous appeon,
lorsque tu utilises un execute immediate...

tu ne peux pas l'utiliser de cette facon :

execute "pr_pb_adonf 'coucou'" using sqlca ;

il faut faire comme ceci :

Code: pb

string ls_sql
ls_sql = "pr_pb_adonf 'coucou'"
execute immediate :ls_sql using sqlca;

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 31-01-2008 10:26:19

lolo1367  
Membre
Date d'inscription: 29-01-2008
Messages: 6
Pépites: 32
Banque: 0

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

Bonjour,

Cela ne fonctionne toujours pas. Je travaille sous une base ORACLE 9i.

string ls_sql

ls_sql = "EXECUTE pa_chantier.AjouterNew()"

EXECUTE IMMEDIATE :ls_sql USING gnv_app.inv_transaction;

messagebox ("sql erreur",string(gnv_app.inv_transaction.sqlcode))
messagebox ("sql text",string(gnv_app.inv_transaction.sqlerrtext))
messagebox ("sql dbcode",string(gnv_app.inv_transaction.sqldbcode))

J'ai comme code retour sqlcode = -1

L'erreur remontée est

ORA-06650 : Ligne 1, colonne 7 :
PLS-00306 : numéro ou type d'arguments erronés dans l'appel de AJOUTERNEW
ORA-06650 : Ligne 1, colonne 7 :
PS/SQL : Statement ingored

En effet lorsqu'on espoinne la trace oracle, APPEON passe un paramètre :
EXECUTE pa_chantier.AjouterNew(:1)

Avez-vous une idée ? Cela ne viendrait-il pas de JDBC ?

Merci par avance

Hors ligne

 

#8 31-01-2008 10:33:02

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

tu as essayé

ls_sql = "EXECUTE pa_chantier.AjouterNew"

sans les ()  ?

sinon, tu passes par le declare de la procedure stockée. et ca marche à tous les coups.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#9 31-01-2008 10:41:47

lolo1367  
Membre
Date d'inscription: 29-01-2008
Messages: 6
Pépites: 32
Banque: 0

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

Oui, j'ai essayé sans les parenthèses. Les deux fonctionnent coté PB.

J'ai également essayé en déclarant la procedure cela marche coté PB mais cela ne marche pas pour la même raison coté APPEON
(ce que je ne peux pas faire pour porter mon appli car tout est dynamique, tu as rencontré à priori le même problème).

Lolo1367

Hors ligne

 

#10 31-01-2008 10:48:23

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

normalement, une simple procedure comme la tienne fonctionne.

tu as essayé avec d'autres procedures ? genre, une procedure stockée qui te ramene un enregistrement. avec un nom tout simple, et
sans le point pa_chantier.AjouterNew  .

sinon, tu passes par ma methode.
tu crees une procedure stockée qui lancera dynamiquement l'autre procedure.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#11 31-01-2008 12:11:26

lolo1367  
Membre
Date d'inscription: 29-01-2008
Messages: 6
Pépites: 32
Banque: 0

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

En fait, tu avais raison, ce qui semble génant c'est la fait que la procédure soit dans un package. Si je créée la procédure en direct cela fonctionne.

As-tu une idée ?

Merci

Hors ligne

 

#12 31-01-2008 12:35:25

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée

peut etre ca ?

Placing the stored procedure declaration syntax in a statement block that may not be executed at runtime is unsupported. In PowerBuilder, stored procedure declaration syntax is treated the same way as variable declaration, so the syntax will not be skipped although the statement block is not executed. However, in the Web application, the syntax may be skipped and cause errors.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#13 31-01-2008 12:37:52

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Appeon - PB10.5 - Oracle9 : appel procédure stockée


en tout cas, si tu as d'autres questions sur appeon et autres, n'hesites pas. ca peut faire avancer le schmilblick.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22