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
Créer un fichier PDF de la contribution Imprimer


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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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 ignored


et 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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2