SQL et le mot clef LIKE [Résolu]

Signaler
Messages postés
48
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
9 août 2009
-
Messages postés
48
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
9 août 2009
-
J'ai un petit probleme avec le mot clef LIKE, j'ai mis dans un evenement ONCHANGE d'un TEdit nommé ESaisi le code suivant :
module.ADOQuery1.Active:=false;
module.ADOQuery1.SQL.Clear;
module.ADOQuery1.SQL.Add('SELECT *');
module.ADOQuery1.SQL.Add('FROM DOMAINE');
module.ADOQuery1.SQL.Add('WHERE DOM_NOM LIKE '''+ESaisi.Text+'%''');
module.ADOQuery1.Active:=true;
Et ca marche pas, j'arrive pas a voir pourquoi; si qqun peut m'aider, ce serai cool; merci

6 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Je viens moi aussi d'essayer et ça fonctionne bien.

Es-tu sur qu'il existe bien des enregistrements correspondant au filtre ? Attention car les espaces ne sont pas ignorés et les majuscules/minuscules sont des lettres différentes.
LIKE renvoi toutes lignes dont le début correspond EXACTEMENT à la valeur donnée.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Essaye ceci :
module.ADOQuery1.SQL.Add('WHERE DOM_NOM LIKE :Filtre');
module.ADOQuery1.ParamByName('Filtre').AsString:=ESaisi.Text+'%';

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
48
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
9 août 2009

Je viens de le tenter, si il n'y a rien dans le TEdit ca affiche la table complête, des que je tape un caractere, la requete génère une table vide...
fab30
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Si la casse a de l'importance, utilises les fonctions upper ou lower comme par exemple :

SQL.Add('WHERE UPPER(DOM_NOM) LIKE '''+ESaisi.Text+'%''');

May Delphi be with you.
Delphi advanced
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Penses aussi à laisser des espaces entre les instructions car, dans l'extrait de code que tu donnes, l'interpréteur SQL doit avoir bien du mal à distinguer les différentes parties de ta requête.

Mais, peut-être, est-ce dû à une erreur de recopie en posant la question sur ce forum.

May Delphi be with you.
Delphi advanced
Messages postés
48
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
9 août 2009

Ouf, enfin ca marche, pas sur ma machine mais sur une autre !!! Par contre, le mot UPPER ne passe pas... Peut être est-ce parce que j'utilise une table faite avec Access et le moteur JET de chez Microsoft ? Y existe d'autre mot clef faisant pareil?
fab30