|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Architecte Inscription : mai 2002 Messages : 1 057 ![]() |
Hello,
J'ai une application Delphi/Firebird 1.5 qui permet à l'utilisateur d'effectuer une recherche d'adresse. La requête provoque une erreur «Token unknown» lorsque l'utilisateur introduit une chaîne de recherche comportant le caractère apostrophe comme «rue de l'Arbre». Je voudrais prévenir cette erreur et j'ai 2 questions :
|
|
|
00
|
|
|
#2 |
![]() ![]() Claude RenouleaudDéveloppeur informatique Inscription : février 2006 Messages : 4 760 ![]() |
Salut
La question est: comment transmets-tu le critère de recherche ? Car il est évident que le problème se situe au niveau de l'apostrophe. Personnellement je transmet les chaînes de caractères avec la fonction QuotedStr qui encadre la chaîne mais double également ceux présents dans celle-ci. Donc dans ton exemple le texte rue de l'Arbre sera bien transmis sous la forme 'rue de l''Arbre'. Ce qui devrait supprimer tout problème de parsing de ta requête. @+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira. |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Architecte Inscription : mai 2002 Messages : 1 057 ![]() |
L'expression est saisie dans un TEdit dont le contenu est passé dans une variable de type String.
La requête est Code :
SELECT DISTINCT Nom, Adresse FROM TableBien WHERE Adresse LIKE ''%' + Adr1 + '%'' |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() |
Le plus simple serait de passer par des paramètres :
Query.SQL.Text:='SELECT DISTINCT Nom, Adresse FROM TableBien WHERE Adresse LIKE :Adr1' Query.ParamByName(Adr1).AsString:='%'+Edit1.Text+'%' |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Architecte Inscription : mai 2002 Messages : 1 057 ![]() |
Pourquoi pas.
Merci pour l'idée. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com