Oracle procédure stockée dataset [Résolu]

Messages postés
36
Date d'inscription
lundi 22 avril 2002
Dernière intervention
12 décembre 2005
- 14 mars 2005 à 10:57 - Dernière réponse :
Messages postés
1
Date d'inscription
samedi 21 février 2004
Dernière intervention
8 avril 2005
- 8 avril 2005 à 10:23
Bonjour,



J'aimerais savoir comment écrire la procédure oracle me permettant de
renvoyer un résultat composé de plusieurs lignes (select * from table)
et comment écrire le programme delphi me permettant de l'afficher dans
un dbgrid.

Je voulais le faire avec une fonction mais apparement c'est pas
possible et j'ai essayé de le faire avec un argument mais ne trouve pas
le type qui convient.



Merci de votre aide c'est très urgent.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1
Date d'inscription
samedi 21 février 2004
Dernière intervention
8 avril 2005
- 8 avril 2005 à 10:23
3
Merci
bonjour,
la réponse est là : http://bdn.borland.com/article/0,1410,28616,00.html

à savoir :

Question:

How do I get a result set from an Oracle Stored Procedure?

Answer:

A REF CURSOR is required to return a result set from a stored procedure. You will need to put the procedure in a package. To create a package use the following SQL command: CREATE PACKAGE MYPKG
IS
TYPE CursorType IS REF CURSOR;
END MyPkg;

Then when you create the procedure: CREATE PROCEDURE RETURN_RESULT_SET
(oCursor IN OUT MyPkg.CursorType) AS
BEGIN
open oCursor for select * from SomeTable;
END;

In Delphi or C++Builder, set the TStoredProc parameter DataType as type ftCursor. At this point you should treat the TStoredProc component like a TQuery and use the Open method instead of ExecProc.

Crdl.
VG

Merci vgoblet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de vgoblet
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
- 14 mars 2005 à 15:22
0
Merci
creer un dataset et écrire la requête dans la partie command. Créer un datasource et relier ce datasource au dataset par la propriété "dataset". Et enfin dans la propriété "datasource" du dbgrid mettre le datasource qui vient d'être créé.
Pour les paramètres dans la requête, il faut mettre les 2points (:) avant le nom du paramètre. Ensuite aller dans le propriété "parameters" du dataset et choisir pour chaque paramètre le bon type. Et pour donner une valeur au paramètre lors de l'appel du dataset dataset.parameters[n°duparametre].value:=lavaleur.

J'espère que tu as tout compris.

pseudoOM
Commenter la réponse de pseudoOM
Messages postés
36
Date d'inscription
lundi 22 avril 2002
Dernière intervention
12 décembre 2005
- 14 mars 2005 à 17:16
0
Merci
merci de cette réponse

en fait j'ai du mal posé la question, je veux créer une procédure
stockée oracle qui renvoie un ensemble de ligne (calcul de bourin sur
des données...)et je veux mettre ce résultat dans un datagrid, est-ce
plus clair?
Commenter la réponse de guilhemh
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
- 14 mars 2005 à 18:51
0
Merci
Tu peux mettre ta procédure dans le dataset. Et si tu fais comme j'ai dit au dessus, le résultat s'affichera dans le dbgrid.

pseudoOM
Commenter la réponse de pseudoOM
Messages postés
36
Date d'inscription
lundi 22 avril 2002
Dernière intervention
12 décembre 2005
- 15 mars 2005 à 19:28
0
Merci
je suis d'accord avec toi mais comment écrire la procédure sous oracle (paramétre OUT)? que doit elle renvoyé?



Merci de ton aide
Commenter la réponse de guilhemh
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
- 16 mars 2005 à 08:12
0
Merci
DECLARE
variable type (ex: var INTEGER;)
....
BEGIN
SELECT * FROM table;
(si tu dois récupérer des trucs spécifiques c'est SELECT champ INTO variable FROM table et tu peux mettre des conditions WHERE)
ton calcul de bourin;
(il peut y avoir des boucles aussi FOR .... DO ou autre)
RETURN variable;
END;

pseudoOM
Commenter la réponse de pseudoOM
Messages postés
36
Date d'inscription
lundi 22 avril 2002
Dernière intervention
12 décembre 2005
- 16 mars 2005 à 21:01
0
Merci
une procédure accepte un return ?

je n'ai pas l'impression qu'on puisse appeler une fonction ...



Ensuite c'est un type complexe que je dois renvoyé.

Merci de ton aide
Commenter la réponse de guilhemh

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.