PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → Procédures stockées
Procédures stockées
Iniciado por sierra jean, 14,may. 2004 12:27 - 2 respuestas
Publicado el 14,mayo 2004 - 12:27
Comment appeler une procedure stocke par Webdev 7 avec un accès natif Oracle
Publicado el 14,mayo 2004 - 13:59
Voici,

SQLExec("Call pMaProc(p1,p2,...)","TEST")

Bàt,
Fabrice.

"sierra jean" <jsierra@pictet.com> wrote in message
news:40a4860d@news.pcsoft.fr...


Comment appeler une procedure stocke par Webdev 7 avec un accès natif

Oracle
>
Publicado el 14,mayo 2004 - 17:02
Fabrice De Weerd wrote:
Voici,

SQLExec("Call pMaProc(p1,p2,...)","TEST")




Hum ? Bizarre ta syntaxe ... ou alors cela a changé.

Ci après une doc qui était fourni par PCSOFT à ce sujet.

Sinon un problème qui existait (je ne sais pas si cela a été résolu ?);
c'est que l'on ne pouvait gérer des paramêtres en retour avec l'accès natif.

Pour cela, il y a d'autres solutions.

////////////////////////////////////////////////////////////////

doc procédures stockées



Comment gérer des procédures stockées sur ma base Oracle depuis WinDev

Vous trouverez ci-dessous le détail de l'utilisation de procédures stockées
ainsi qu'un exemple.



- Les fonctions sont directement utilisables dans SELECT

- Les procédure doivent être appelées avec la syntaxe : begin
Nomproc(xxx);end;

- Les appels de procédures stockées doivent rester simples. Ils ne doivent
pas utiliser de paramètres en sortie sauf dans le cas d'une utilisation dans
le bloc BEGIN ... END.

- D'autre part, il n'est pas possible de récupérer un résultat de procédure
stockée renvoyant plusieurs types de tables. Table Client, Table Commande
des clients, etc..



Exemple 1



--> Cote serveur (oracle) // C'est la description de la procédure....

create or replace procedure INSCRIPTION

(pcode_etu etudiant.codet%type,

pnom etudiant.nomet%type,

pnb_point etudiant.NB_POINTS%type,

pcode_uer etudiant.codeuer%type,

pcodedip etudiant.codedip%type) as

............

begin

...........

end;





--> Cote client (WINDEV) // Le code W-Langage qui permet d'exécuter cette
procédure

req,req2 sont des chaines

resreq,resreq2 sont des booleens

ret est un entier

Message("Insciption de l'étudiant")

req="Begin INSCRIPTION("+CODET+",'"+NOMET+"',"

req=req+RC+NB_POINTS+",'"+CODEUER+"','"+CODEDIP+"'); End;"



resreq=SQLExec(req,"REQ")

SI resreq ALORS

info("Etudiant inscrit")

SINON

sqlinfogene("REQ")

erreur(sql.meserreur)

FIN



Exemple de fonction



FUNCTION MaProc(NumCpt Char) return real IS

id_cust real;

BEGIN

select summ(montant) into id_cist

from operation

where operatio.numcompte=NumCpt

group by numcompte;

END;



Exemple d'appel de cette procédure en W-Langage:

select numcompte,soldeini+maproc(numcompte) formcompte



Eric