|
|
Procédures stockées et Windev |
|
|
Anonyme
|
Bonjour à tous! J'ai repris une application de gestion commerciale, et je me suis rendu compte que certaines se bloquaient (la base est sous SQL Server 2000) Je désire donc passer mes requetes dans desprocédures stockées Coment puis je faire??? Merci de votre aide Cléa
Contribution le : 08/03/2004 13:19
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Salut, Je n'ai pas la doc sous les yeux mais il faut voir du coté de SQLExe
Contribution le : 08/03/2004 15:44
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
J'ai moi aussi besoin d'utiliser des procédures stockées depuis peu. Les procédures sont dans des tables de la base, mais il m'est impossible de les executer. Je fait un truc du genre : sqlExe("maBase.maTable.maprocedure('param1', 'param2') mais ça ne fonctionne point ! Alors je précise que ma connexion à la base est bonne, j'execute des ordres SQL standards sur la même base et ça marche impec avec sqlExec, par contre j'ai jamais vraiment utilisé de procédures stockées, donc il est fort possible que je m'y prenne comme un manche dans le cas présent. Si c'est le cas, merci de me remttre sur le droit chemin
Contribution le : 16/12/2004 19:01
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, Idée Essayé un code du genre:
Sql estune chaine = "<Nom de la procédure> @<Nom param1>=<Valeur1>, @<Nom param2>=<Valeur2>"
ResExec est un booléen = SQLExec(Sql,"REQ1")
SI PAS ResExec ALORS
SQLInfoGene("REQ1")
Info("Erreur exécution de la requête : " + SQL.MesErreur)
FIN
ou bien du genre:
Req est une chaine="EXEC Procedure(Var1,Var2)"
SQLexec(req, "REQ1")
SQLpremier("REQ1")
ValRet est une chaine = SQLcol("REQ1",1)
SQLferme("REQ1)
Contribution le : 17/12/2004 02:27
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
Anonyme
|
Merci de ta réponse drCharly, mais rien à faire, ça ne fonctionne pas.
Mais même sous sqlPlus je n'arrive pas à executer mes procédures stockées...
Sous sqlPlus, quelle est la syntaxe exacte qui marche bien, pour une procédure stockée sur base oracle ?
Contribution le : 31/12/2004 10:21
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 29/07/2002 12:31
De 59000, Lille
Post(s): 239
|
exec maprocedure (param1, param2);
sinon
st serverout on ;
DECLARE RetVal NUMBER; BEGIN RetVal := ma_fonction; DBMS_OUTPUT.Put_Line('RetVal = ' || TO_CHAR(RetVal)); COMMIT; END;
Contribution le : 31/12/2004 12:00
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Encore une autre petite question : tout le monde semble lancer ses appels aux fonctions juste en tapant le nom de la procédure. Pourtant, moi, je suis bien obligé de taper tout le nom de la base de données pour pouvoir executer mes requetes. Exemple : EXEC APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE'); Et de toute maniére ça ne fonctione pas non plus
Contribution le : 03/01/2005 09:22
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 29/07/2002 12:31
De 59000, Lille
Post(s): 239
|
Pour moi, et si c'est du oracle, dans la commande : EXEC APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE');
APISOFT_DOS_PROMATEX : user_oracle
GES_APPEL_EXT : package
OPENSESSION : procedure
('INVITE', 'INVITE') : paramètres
Contribution le : 03/01/2005 10:37
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
On est bien d'accord, donc ça devrait marcher à priori... Comprend pas moi Ma base fonctionne bien, et j'arrive bien à lister les procedure du package avec un select...
Contribution le : 03/01/2005 12:03
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 29/07/2002 12:31
De 59000, Lille
Post(s): 239
|
avec quel user tu te connectes à la base ? si c'est le même que celui donné : PB
si c'est un autre, a-t-il les droits d'exécution ?
Un conseil qui vaut pour tout développeur dans ton cas, un simple test sous sqlplus permet de vérifier si le problème de non exécution provient de la base ou de votre méthode de programmation sous WD.
@+
Contribution le : 03/01/2005 19:13
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Justement, je n'en suis encore qu'au stade de SQLplus... Je repost le message d'erreur exact dés que je suis au taf cet aprés midi...
Contribution le : 04/01/2005 13:03
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Bon, quand je fait un
DESCRIBE APISOFT_DOS_PROMATEX.GES_APPEL_EXT;
J'obtient :
FUNCTION OPENSESSION RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
USER VARCHAR2 IN
PWD VARCHAR2 IN
Parmis ma liste de procédures ( qui est trés trés longue ). Donc j'ai bien accés aux procédures ( au moins en lecture). Par contre quand je fait ça ( toujours sous sqlPlus) : SQL> EXECUTE APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE');j'obtient ça : BEGIN APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE'); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00221: 'OPENSESSION' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignoredet pareil si je fait la même chose mais avec CALL, ça plante aussi :
SQL> CALL APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE');
CALL APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE')
*
ERROR at line 1:
ORA-06576: not a valid function or procedure name
Donc moi pas comprendre...
Contribution le : 04/01/2005 15:05
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 29/07/2002 12:31
De 59000, Lille
Post(s): 239
|
vu que c'est une fonction et non une procédure, essaie
DECLARE
RetVal NUMBER;
BEGIN
RetVal := APISOFT_DOS_PROMATEX.GES_APPEL_EXT.OPENSESSION('INVITE', 'INVITE');
DBMS_OUTPUT.Put_Line('RetVal = ' || TO_CHAR(RetVal));
COMMIT;
END;
çà devrait aller mieux 
Contribution le : 04/01/2005 16:02
|
|
|
|
|
Re: Procédures stockées et Windev |
|
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
En effet, ça marche impec, merci beacoup.
Par contre sous sqlPlus, il faut ajouter un / à la fin, mais avec sqlExec, il ne faut pas le mettre.
Sinon tant que j'y suis, est ce que quelqu'un sait comment faire pour récupérer la valeur retVal sous Windev ?
Dans mon cas c'est pas forcement indispensable, mais ça peux quand même servir.
Contribution le : 05/01/2005 13:10
|
|
|
|
|
Re: Procédures stockées et Windev |
|
Animateur WDF 
Inscrit: 29/07/2002 12:31
De 59000, Lille
Post(s): 239
|
le / c'est normal c'est ce qui permet de dire que c'est la fin de ton bloc PL/SQL anonyme.
sous WD8 et l'accès natifs de l'éditeur, je crois qu'il est possible d'utiliser des bindvariables de types in/OUT. Désolé de ne pouvoir t'en dire plus.
Contribution le : 05/01/2005 13:24
|
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|