|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 2 ![]() |
bonjour,
J'utilise MySQL 5.0, et je cherche à créer une requête simple de manière dynamique dans une procédure stockée, en passant dans une variable le nom d'une table, et d'utiliser cette variable dans ma requête sql, par exemple : Code :
Merci. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Il faut utiliser un prepared statement :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2007 Messages : 2 ![]() |
Merci Antoun, ça marche impeccablement.
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 1 ![]() |
Bonjour,
je parcours ce forum en quete de ma reponse et je pense que ce sujet pourrais y aqrriver. ce que je cherche a faire est du même style que jonjack sauf que ce qui est dynamique chez moi, ce sont les noms de champs. je recupere un nom dans une liste deroulante et ca devient mon nom de champs dans lequel je dois inserer ou modifier la valeur. dois-je utiliser le meme type de code ou puis-je appeler les champs dans la requete par leur numeros ? merci d'avance. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : juin 2009 Messages : 9 ![]() |
Bonjour,
Pardon de déterrer ce vieux sujet mais sa fait un moment que je galère sur google et ce poste est le seul qui m'apporte une réponse, a tel points qu'il m'a conduit à m'inscrire Je cherche à faire exactement la même chose, dans une procédure qui pourrai s'appliquer à plusieurs table, mais en vain, je suis pourtant également sur mysql 5 (5.0.51b simulé sur wamp pour être précis). Je fait bêtement sa, simplement pour tester pour l'instant: Code :
Citation:
Y'a pas une autre méthode que les prepared statement ? un coup demain sa serai cool, surtout que sa devient urgent. Merci d'avance!! |
|||
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Il faut utiliser des variables de session et non des variables locales (donc @sqlCMD au lieu de sqlCMD, et pas de DECLARE). Par ailleurs, un espace entre from et matable fera le plus grand bien.
Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juin 2009 Messages : 9 ![]() |
merci Antoun, c'était exactement ça, j'ai envie de me frapper
.
|
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() |
Désolé de re-déterrer ce sujet mais encore une fois c'est le seul qui s'approche de ce que je souhaite faire.
Je suis dans une fonction stockée et j'ai besoin d'exécuter une requête avec des clauses where différentes en fonction de certains paramètres passés à la fonction. J'ai donc utilisé vos astuces ci-dessus mais je me suis pris cette belle erreur : Code :
Que puis-je faire ? Merci d'avance
__________________
[/HS] une pétition pour la libération des drivers matériels ici J'adorerai changer le monde, mais pas moyen de mettre la main sur le code source |
||
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() |
Dans mon exemple précis j'ai ça :
Code :
Merci d'avance
__________________
[/HS] une pétition pour la libération des drivers matériels ici J'adorerai changer le monde, mais pas moyen de mettre la main sur le code source |
||
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() |
Bon du coup j'ai mis mon code avec le SQL dynamique dans une procédure que j'ai appelée dans ma fonction où le reste du code est fait.
Cela "compile" (comprendre que MySQL Workbench ne me pète pas d'erreur à la gueule lorsque je clique sur Apply et qu'il enregistre bien ma nouvelle procédure en base... De la même façon il prend en compte les modifs faites sur la fonction dont j'ai hérité...) En revanche au moment où l'appli appelle la première fonction (celle qui appelle la procédure stockée contenant le SQL dynamique) et bien il me relance sa put*** d'erreur comme quoi le SQL dynamique n'est pas autorisé dans les fonctions stockées ou les triggers. Quelqu'un saurait comment je peux contourner ça svp ? Merci d'avance
__________________
[/HS] une pétition pour la libération des drivers matériels ici J'adorerai changer le monde, mais pas moyen de mettre la main sur le code source |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com