Bonjour,
Je désire exécuter des procédures stockées et des fonctions stockées (que j'aurai écrites) dans ma base Oracle 9i.
C'est cette méthodologie que j'applique dans l'ensemble des projets informatiques auquels je participe. Que ce soit en C++, C#, Delphi, VBA ...
En effet, le fait d'écrire les requêtes en dur dans le code WinDev nécessite, en cas de correctif, une nouvelle compilation, une nouvelle livraison et un nouveau déploiement.
Il doit bien être possible tout de même d'exécuter une procédure stockée à partir de WinDev en passant les paramètres en entrées et en récupérant le résultat dans WinDev.
Voici l'exemple d'une procédures tockée qui prends en entrée un login et mot de passe, et renvoie l'identifiant de l'utilisateur désigné, l'identifiant et le nom de son groupe ainsi que l'identifiant du responsable de son groupe.
Via cette requête (dans l'analyseur de requête) ça marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 CREATE OR REPLACE PROCEDURE OGBC_CHECK_CONNECTION ( login in bctbutilisateur.util_login%type, pwd in bctbutilisateur.util_pwd%type, idGroupe out bctbgroupe.grpe_id%type, nomGroupe out bctbgroupe.grpe_nom%type, idRespGroupe out bctbgroupe.rgpe_id%type, idUser out bctbutilisateur.util_id%type ) IS BEGIN SELECT g.grpe_nom, g.grpe_id, rg.util_id, u.util_id INTO nomGroupe, idGroupe, idRespGroupe, idUser FROM bctbutilisateur u, bctbgroupe g, bctbresponsable_groupe rg WHERE g.grpe_id = u.grpe_id AND g.grpe_id = rg.grpe_id AND u.util_login = login AND u.util_pwd = pwd; END;
Par contre, à partir de WinDev je tourne en rond, pas moyen de l'exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 variable temp1 number; variable temp2 varchar2(50) variable temp3 number variable temp4 number call ogbc_check_connection('rp', 'rp', :temp1, :temp2, :temp3, :temp4); print :temp1 print :temp2 print :temp3 print :temp4
Merci de votre aide.
Partager