Je tente de faire un petit programme sous DELPHI 2006 qui accède à une base de mots en ACCESS (1 table, 2 champs).
Je voudrais filtré le contenu de la base pour ne voir que, par exemple, les mots commençants par la lettre "A" et ayant un "S" comme 3ième lettre : ABS, ABSENT, ABSENTE,...
Facile, me direz vous !!!
Et bien pas tant que cela au vu des résultats que j'obtiens.
J'utilise les composants ADOConnection, ADOTable, DataSource.
Logiquement, ma requête devrait ressembler à ceci SELECT * FROM mots WHERE mot LIKE 'a_s%'. Or cette requête ne donne absolument aucun résultat.
- SELECT * FROM mots WHERE mot LIKE 'a_'
- SELECT * FROM mots WHERE mot LIKE 'a%'
et SELECT * FROM mots WHERE mot LIKE 'a*' me donnent tous les mots qui commence par la lettre "A". Ce qui n'est pas logique pour la première puisque le caractère "_" est censé remplacer 1 caractère et non plusieurs (je devrais avoir 'AS', 'AT', que des mots de 2 lettres - mais je peux y palier en rajoutant une condition sur la longueur des mots que je veux).
Il fut un temps lointain, j'avais réussi en VB avec : SELECT * FROM mots WHERE mot LIKE 'a?s*'. Le "?" remplaçant 1 et 1 seul caractère.
J'ai tourné le problème dans tous les sens. Lu et relu toutes les aides comme C:\Program Files\Fichiers communs\Borland Shared\BDE\LOCALSQL.HLP
J'en viens à me dire que j'ai un problème de configuration car dans tout ce que j'ai pu voir, personne a ce problème.
Camarades programmeurs, le néophyte en DELPHI que je suis, vous en appelle A L'AIDE !!!!
Droopy30
A voir également:
Sql like
Requête sql like plusieurs valeurs - Meilleures réponses
CH... !!! c'est peu dire....
Surtout que cela fonctionne très bien en VB avec la même base de données.
J'arrivais même à faire des recherches du type "... like '??bs?n*' " (tous les mots avec 'b' et 's' en 3 et 4ième position et 'n' en 6 ième !!!)
Dans un de mes programme en Delphi utilisant une base access, j'utilise la syntaxe identique à votre requete "SELECT * FROM mots WHERE mot LIKE 'a%'" à travers un ADOQUERY et cela fonctionne très bien.
j'utilise Access 2003.
et la requête "SELECT * FROM mots WHERE mot LIKE 'a%'" fonctionne à merveille.... je suis d'accord.
Par contre "SELECT * FROM mots WHERE mot LIKE 'a_s%'" ne marche pas.
Imaginez : je fais des mots croisés. J'ai une définition pour un mot de 7 lettres et je sais que la 1ière est un "A" et la 3ième un "S".... donnez moi tous les mots qui correspondent à ces critères uniquement.
Si c'est pour chercher dans un dico, j'ai pas besoin d'un programme !