PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Opérateur SQL LIKE
Opérateur SQL LIKE
Débuté par jobind, 01 nov. 2012 11:05 - 3 réponses
Posté le 01 novembre 2012 - 11:05
J'essaie de rendre plus flexible l'opérateur LIKE dans une requête.

Au départ, je peux utiliser le code :

WHERE transactions.trans_date LIKE '%1231'

sans difficulté.


Si je remplace '%1231' par une variable de type chaîne, telle que
sMoisJour, la requête donne comme avertissement : "Mot sMoisJour inattendu".


En utilisant l'éditeur de requête, si je spécifie la condition "finit
par" le paramètre "Param_fin_de_mois"

L'éditeur de requête utilise la syntaxe suivante :

WHERE transactions.trans_date LIKE %{Param_fin_de_mois}


Si j'essaie de tester la requête et que j'entre la valeur 1231 pour le
paramètre, je reçois le message d'erreur :

Numéro d'erreur = 22

You have an error in your syntax ... right syntax to use near '%1231


Comment puis-je procéder pour utiliser un paramètre?
Membre enregistré
2 321 messages
Posté le 01 novembre 2012 - 14:33
Bonjour,

Essayez :
WHERE transactions.trans_date LIKE '%{Param_fin_de_mois}'

Bon dev.
Jean-Pierre
Posté le 01 novembre 2012 - 20:33
Finalement, j'ai opté pour l'utilisation de ChaîneConstruit, en
utilisant un paramètre pour la fin de mois désirée. Puis, j'exécute la
requête avec HExécuteRequêteSQL, et ça fonctionne.

J'ai donc :

sReqÀconstruire = "SELECT ...
"WHERE"
"transactions.trans_date LIKE '%1'"
....

sReq = ChaîneConstruit(sReqÀconstruire,sMoisJour)

HExécuteRequêteSQL(sdMaRequête, cnxBase, sReq)



Merci pour votre réponse.


On 2012-11-01 09:40, Jean-Pierre BLOCH wrote:
Bonjour,

Essayez :
WHERE transactions.trans_date LIKE '%{Param_fin_de_mois}'

Bon dev.
Jean-Pierre
Posté le 02 novembre 2012 - 11:46
Denis Jobin a formulé la demande :
J'essaie de rendre plus flexible l'opérateur LIKE dans une requête.

Au départ, je peux utiliser le code :

WHERE transactions.trans_date LIKE '%1231'

sans difficulté.


Si je remplace '%1231' par une variable de type chaîne, telle que
sMoisJour, la requête donne comme avertissement : "Mot sMoisJour inattendu".


En utilisant l'éditeur de requête, si je spécifie la condition "finit
par" le paramètre "Param_fin_de_mois"

L'éditeur de requête utilise la syntaxe suivante :

WHERE transactions.trans_date LIKE %{Param_fin_de_mois}


Si j'essaie de tester la requête et que j'entre la valeur 1231 pour le
paramètre, je reçois le message d'erreur :

Numéro d'erreur = 22

You have an error in your syntax ... right syntax to use near '%1231


Comment puis-je procéder pour utiliser un paramètre?


LeNomDeMaRequete.Param_fin_de_mois = MaValeur
HExecuteRequete(LeNomDeMaRequete,....)
.....

ou

HExécuteRequête(LeNomDeMaRequete,hRequêteDéfaut,MaValeur)

voir ici §"Liste de valeurs / Liste de paramètres" et "Autre méthode
pour passer les paramètres d'une requête" :
http://doc.pcsoft.fr/fr-FR/?3044080&name=hexecuterequete_fonction&q=HEx%C3%A9cuteRequ%C3%AAte

--
Cordialement JeAn-PhI