EDatabaseError avec "expression filtre terminée incorrectement"

Signaler
Messages postés
93
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
2 juillet 2007
-
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
-
salut,

quand je fais ça :

ClientDataSet.First;

if ClientDataSet.Locate('chemin', Data.Pathname, [loCaseInsensitive]) then
begin
ClientDataSet.Delete;
end;

Delphi me sort une erreur EDatabaseError avec un message "Expression filtre terminée incorrectement" alors que je n'utilise pas de filtre... mais du coup l'exécution plante quand même...

(le clientDataSet sert à accéder à une BD en XML)

est-ce que quelqu'un pourrait m'expliquer pourquoi?



<HR>


BLOU BLOU POWAA
A voir également:

2 réponses

Messages postés
93
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
2 juillet 2007

J'ai remarqué que l'erreur se produisait lorsque la chaine à récupérer contenait un apostrophe. J'ai cru comprendre qu'il me fallait utiliser QuotedStr mais même avec ça, ça plante...
ça me met maintenant une EDatabaseError avec comme message :
"Constante chaîne non terminée"

Puis une erreur EVariantTypeCastError avec comme message :
"Impossible de convertir la variant de type (null) en type (String)"

En bref plantage quoi...


<HR>
BLOU BLOU POWAA
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Lorsque j'utilisais la méthode locate sur des dataset IB, j'encapsulais la valeur à chercher dans un VarArrayOf



ex : Locate('Id',VarArrayOf([trouve_id]), [loPartialKey]);



J'avais des plantages similaires aux tiens avant d'utiliser VarArrayOf.

Essaie toujours.



Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans