Procédure stockée

Le
josquin.bernard
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,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
patrice
Le #14482461
en créant une fonction qui appelle la procedure dans le meme package ?

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,
josquin.bernard
Le #14482421
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 ?

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,


youpi
Le #14550881
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.






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 ?

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,


Publicité
Poster une réponse
Anonyme