|
| [WD24] Type de variable Requête SQL en paramètre |
| Iniciado por Philippe C., 30,jun. 2020 16:00 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 76 mensajes |
|
| Publicado el 30,junio 2020 - 16:00 |
Bonjour à tous,
J'ai essayé de chercher sur le forum avant de mettre mon message, mais je ne trouve rien qui puisse m'aider.
Au niveau de notre application, une classe a été créée contenant toutes nos requêtes SQL, c'est à dire définition dans une chaine du SELECT et exécution via un HExecuteRequeteSQL dans une source de données passée en paramètre. Cela permet de ne pas recoder en permanence les requêtes et de les réutiliser.
J'essaye de voir comment je pourrais faire avec le nouveau type de variable Requête SQL, mais le fait que la variable doit être local à la procédure m'empêche de remettre ce principe en route avec le nouveau type de variable. Il y a bien les variables globales que je pourrais utiliser, mais je ne trouve pas ça très "propre"... Surtout qu'il faut faire attention au télescopage si jamais dans les imbrications d'appel de procédure.
Merci d'avance pour qui aura déjà pu répondre à cette question.
Bonne journée, |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 30,junio 2020 - 16:16 |
Bonjour,
Je trouve assez "original" d'utiliser une classe pour stocker ces requêtes... mais soit!
Pour réussir ce que vous voulez faire, il faut que chaque requête soit renvoyer par une méthode. Cette méthode doit recevoir en paramètre, les paramètres nécessaires à la requête. Il restera à les remplacer dans le texte de la requête.
Pourquoi ne pas avoir utiliser l'éditeur de requêtes en mode SQL ? Cela permet d'avoir la complétion. ?!
-- Thierry TILLIER Développeur Windev-Webdev Formation Windev : https://coursdinfo.teachable.com/ Formation bureautique : https://coursdinfo.net |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 76 mensajes |
|
| Publicado el 30,junio 2020 - 16:58 |
On attaque plusieurs base de données, pas simple de faire ça dans les requêtes internes. On a pas vraiment chercher plus loin il y a 15 ans comment faire et on a préféré ne pas se lier au requête intégrée.
C'est ce qui est fait... La méthode de la classe reçoit en paramètres la source de données ainsi que les paramètres de la requête. Mais avec un type de variable "requête SQL" je ne vois pas comment faire dans la méthode pour utiliser ce type de variable bien précis et le renvoyer via un paramètre.
Bien à vous, |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 30,junio 2020 - 17:22 |
J'utilise la syntaxe suivante.
Procedure MaMéthodeRequete1(pUnparamètre1, pUnparamètre2)
sMaRequete=[ blabla Where tt=[%pUnparamètre1%] and uu=[%pUnparamètre2%] ]
HexecuteRequeteSQL...
à moins que vous ayez une méthode globale qui construit la requête en fonction des paramètres reçus. Si c'est le cas, c'est plus compliqué, je l'avais fait en VBA et je testais tous les paramètres reçus (dans un ParamArray) pour déterminer leur type et construire la requête...
-- Thierry TILLIER Développeur Windev-Webdev Formation Windev : https://coursdinfo.teachable.com/ Formation bureautique : https://coursdinfo.net |
| |
| |
| | | |
|
| | | | |
| | |
|