|
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 |
| |
| |
| | | |
|
| | | | |
| | |
|