Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Procédure stockée

3 réponses
Avatar
josquin.bernard
Bonjour,

Voici le code que j'utilise dans windev pour r=E9cup=E9rer la valeur de
retour d'une fonction dans un package :

SQLConnecte("MABASE","USER","PSWD","","ORACLE)

MaRequete est une chaine
MaRequete =3D " SELECT PKG_TEST.CALCUL_CARRE(8) FROM DUAL"

SI PAS SQLExec(MaRequete ,"REQ_TEST") ALORS
SQLErreur("REQ_TEST",MaRequete )
RETOUR
SINON
SQLPremier("REQ_TEST")
Trace("Valeur retour : "+ SQLCol("REQ_SELECT",1))
FIN

SQLDeconnecte()

Pour infos voici le code de la fonction dans le package PKG_TEST :

FUNCTION CALCUL_CARRE(PARAM_IN NUMBER) RETURN NUMBER
IS
V_RETOUR NUMBER;
BEGIN
V_RETOUR :=3D PARAM_IN * PARAM_IN;
RETURN V_RETOUR;
END CALCUL_CARRE;

Dans mon test j'obtiens bien dans le trace la valeur 64 ( soit 8 * 8 )

( PKG_TEST est le package de test qui contient a la fois des fonctions
et des proc=E9dures )

Maintenant j'aimerai r=E9cup=E9rer la valeur OUT d'une proc=E9dure.

Voici cette proc=E9dure :

PROCEDURE CALCUL_SOMME(PARAM_IN IN NUMBER,PARAM_OUT OUT NUMBER)
IS
BEGIN
PARAM_OUT :=3D PARAM_IN + PARAM_IN;
END CALCUL_SOMME;

Quelqu'un a t-il d=E9j=E0 r=E9ussi =E0 r=E9cup=E9rer sous windev un param=E8=
tre OUT
d'une proc=E9dure?

Merci,

3 réponses

Avatar
patrice
en créant une fonction qui appelle la procedure dans le meme package ?

a écrit dans le message de
news:
Bonjour,

Voici le code que j'utilise dans windev pour récupérer la valeur de
retour d'une fonction dans un package :

SQLConnecte("MABASE","USER","PSWD","","ORACLE)

MaRequete est une chaine
MaRequete = " SELECT PKG_TEST.CALCUL_CARRE(8) FROM DUAL"

SI PAS SQLExec(MaRequete ,"REQ_TEST") ALORS
SQLErreur("REQ_TEST",MaRequete )
RETOUR
SINON
SQLPremier("REQ_TEST")
Trace("Valeur retour : "+ SQLCol("REQ_SELECT",1))
FIN

SQLDeconnecte()

Pour infos voici le code de la fonction dans le package PKG_TEST :

FUNCTION CALCUL_CARRE(PARAM_IN NUMBER) RETURN NUMBER
IS
V_RETOUR NUMBER;
BEGIN
V_RETOUR := PARAM_IN * PARAM_IN;
RETURN V_RETOUR;
END CALCUL_CARRE;

Dans mon test j'obtiens bien dans le trace la valeur 64 ( soit 8 * 8 )

( PKG_TEST est le package de test qui contient a la fois des fonctions
et des procédures )

Maintenant j'aimerai récupérer la valeur OUT d'une procédure.

Voici cette procédure :

PROCEDURE CALCUL_SOMME(PARAM_IN IN NUMBER,PARAM_OUT OUT NUMBER)
IS
BEGIN
PARAM_OUT := PARAM_IN + PARAM_IN;
END CALCUL_SOMME;

Quelqu'un a t-il déjà réussi à récupérer sous windev un paramètre OUT
d'une procédure?

Merci,
Avatar
josquin.bernard
Oui effectivement c'est une solution de secours.

J'ai déjà réussi à concaténer les paramètres OUT ( avec sépara teur ; )
d'une procédure dans une variable ( du style : '125;bob;3;titi' ) qui
est ensuite renvoyée à l'aide de la fonction appelée depuis windev
mais ce n'est pas très élégant. J'aurais préféré accéder direc tement à
ces paramètres OUT sans passer par une fonction.

En tout cas merci,

'12;45;11'
On 23 jan, 14:40, "patrice"
wrote:
en créant une fonction qui appelle la procedure dans le meme package ?

a écrit dans le message denews:1053c715-e697
Bonjour,

Voici le code que j'utilise dans windev pour récupérer la valeur de
retour d'une fonction dans un package :

SQLConnecte("MABASE","USER","PSWD","","ORACLE)

MaRequete est une chaine
MaRequete = " SELECT PKG_TEST.CALCUL_CARRE(8) FROM DUAL"

SI PAS SQLExec(MaRequete ,"REQ_TEST") ALORS
SQLErreur("REQ_TEST",MaRequete )
RETOUR
SINON
SQLPremier("REQ_TEST")
Trace("Valeur retour : "+ SQLCol("REQ_SELECT",1))
FIN

SQLDeconnecte()

Pour infos voici le code de la fonction dans le package PKG_TEST :

FUNCTION CALCUL_CARRE(PARAM_IN NUMBER) RETURN NUMBER
IS
V_RETOUR NUMBER;
BEGIN
V_RETOUR := PARAM_IN * PARAM_IN;
RETURN V_RETOUR;
END CALCUL_CARRE;

Dans mon test j'obtiens bien dans le trace la valeur 64 ( soit 8 * 8 )

( PKG_TEST est le package de test qui contient a la fois des fonctions
et des procédures )

Maintenant j'aimerai récupérer la valeur OUT d'une procédure.

Voici cette procédure :

PROCEDURE CALCUL_SOMME(PARAM_IN IN NUMBER,PARAM_OUT OUT NUMBER)
IS
BEGIN
PARAM_OUT := PARAM_IN + PARAM_IN;
END CALCUL_SOMME;

Quelqu'un a t-il déjà réussi à récupérer sous windev un param ètre OUT
d'une procédure?

Merci,


Avatar
youpi
avec l'accés oracle de WD ?

pour les proc stockées oracle j'ai laissé tomber les oledb et Cie et utilise
l'access AlterNatif de Firetox.
Je n'ai aucun soucis : quelque soit la base oracle en face ou la version WD
(j'ai tjs des trucs en 9 qui tournent malgré les migrations de version de
base)

Si tu peux pas te passer d'un accès qui se branche via l'analyse sur la
base, tu peux peut etre utiliser l'access natif pour uniquement appeler les
procs.

J'ai galéré un poil au debut car je connaissais pas la programmation objet
et l'utilisation de classe mais il y a un projet exemple sur le site qui
appele une proc dans un pkg oracle.

http://www.sqlmanagerx.com/websqlx/html/modules/icontent/index.php?page
en plus, à chaque fois que je coince quelque part, il a la gentillesse de me
depanner.





a écrit dans le message de news:

Oui effectivement c'est une solution de secours.

J'ai déjà réussi à concaténer les paramètres OUT ( avec séparateur ; )
d'une procédure dans une variable ( du style : '125;bob;3;titi' ) qui
est ensuite renvoyée à l'aide de la fonction appelée depuis windev
mais ce n'est pas très élégant. J'aurais préféré accéder directement à
ces paramètres OUT sans passer par une fonction.

En tout cas merci,

'12;45;11'
On 23 jan, 14:40, "patrice"
wrote:
en créant une fonction qui appelle la procedure dans le meme package ?

a écrit dans le message
denews:
Bonjour,

Voici le code que j'utilise dans windev pour récupérer la valeur de
retour d'une fonction dans un package :

SQLConnecte("MABASE","USER","PSWD","","ORACLE)

MaRequete est une chaine
MaRequete = " SELECT PKG_TEST.CALCUL_CARRE(8) FROM DUAL"

SI PAS SQLExec(MaRequete ,"REQ_TEST") ALORS
SQLErreur("REQ_TEST",MaRequete )
RETOUR
SINON
SQLPremier("REQ_TEST")
Trace("Valeur retour : "+ SQLCol("REQ_SELECT",1))
FIN

SQLDeconnecte()

Pour infos voici le code de la fonction dans le package PKG_TEST :

FUNCTION CALCUL_CARRE(PARAM_IN NUMBER) RETURN NUMBER
IS
V_RETOUR NUMBER;
BEGIN
V_RETOUR := PARAM_IN * PARAM_IN;
RETURN V_RETOUR;
END CALCUL_CARRE;

Dans mon test j'obtiens bien dans le trace la valeur 64 ( soit 8 * 8 )

( PKG_TEST est le package de test qui contient a la fois des fonctions
et des procédures )

Maintenant j'aimerai récupérer la valeur OUT d'une procédure.

Voici cette procédure :

PROCEDURE CALCUL_SOMME(PARAM_IN IN NUMBER,PARAM_OUT OUT NUMBER)
IS
BEGIN
PARAM_OUT := PARAM_IN + PARAM_IN;
END CALCUL_SOMME;

Quelqu'un a t-il déjà réussi à récupérer sous windev un paramètre OUT
d'une procédure?

Merci,