|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour à tous et à toutes.
J'ai besoin qu'une procédure me renvoie des données classées selon un ordre paramétrable. Exemple : create procedure ( key1 varchar(10), key2 varchar(10)) returns ( resA integer, resB integer, resC integer ) as begin for select champA, champB, champC from Matable order by :key1, :key2 into :resA, :resB, :resC do begin suspend; end end J'ai fait un premier essai, non concluant, en passant en paramètre des chiffres (pour indiquer le numéro de la colonne) au lieu des noms de champ.... Auriez-vous une idée pour faire cela ? Merci de vos avis. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Quel SGBD ?
Attention, SQL n'est pas un langage procédural
__________________
"Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément." Nicolas Boileau "Expliquer empêche de comprendre si cela dispense de chercher" Quiz Oracle : venez tester vos connaissances ! |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Le SGBD est Firebird 1.52.
|
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : juillet 2002 Messages : 432 ![]() |
Tout est bon dans ta procedure sauf qu'il lui manque un nom.
assure toi que les parametres de retour sont du même type que les champs du select.
__________________
<On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré** http://www.mobile-tactile.com/ |
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Inscription : avril 2002 Messages : 327 ![]() |
Bonjour,
j'ai pas bien compris ta question Citation:
presise toi s'il te plait. bon courage. |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour,
je veux passer en paramètre soit un nom de champ soit un chiffre (numéro de colonne) de façon à ce que je puisse appeler ma procédure de la manière suivante : select * from MAPROCEDURE(2, 1) ou select * from MAPROCEDURE('champB', 'champA') ou pour avoir un classement d'abord sur la 2ème colonne puis sur la première ... Mais le texte de la procédure étant compilé par FB, j'ai peur que l'on ne puisse faire une procédure 'dynamique' ... Laurent. |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
execute statement et la commande qu tu cherche.
|
|
|
00
|
|
|
#8 | ||
|
Membre émérite
![]() ![]() |
La requête dynamique est possible depuis Firebird comme le dit Jean Jacques Varvenne, via la commande Execute Statement.
Exemple Code :
A+
__________________
On progresse ..... |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour à tous ...
et merci. Je ne connaissais pas ce genre chose, je viens de tester, ca marche nickel. Qui au niveau des perfs ? Merci encore. Laurent. |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() ![]() |
A mon avis une requête dynamique ne pas aussi performante q'une requête statique, mais au moins ça permet de faire plus de chose.
A+
__________________
On progresse ..... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com