Bonjour à tous,
Je me permet de vous exposer mon problème, peut être que l'un d'entre vous l'a déjà rencontré ...
Je travaille sous Delphi 7 (base SQL server 7) et je passe actuellement une application de BDE à DBExpress et je rencontre le problème suivant :
J'utilise les composants DBExpress : SQlConnection et SQLQuery. Dans la propriété SQL du SQLQuery je place la requête :
select * from table1 where ID_TYPE in ( select ID_TYPE from table1 where DELAI = :delai)
(je sais que la requête est ridicule, il ne s'agit que d'un exemple).
Le paramètre "delai" est déclaré de type Integer.
Le passe de paramètre est correct :
SQLquery.ParamByname('delai').asInteger := 30;
Lorsque j'effectue la commande SQLQuery.open j'obtiens le message suivant :
"Le projet XXXXX a provoqué une classe d'exception EDatabaseError avec le message 'SQL State : 42000, SQL Error code: 0 Erreur de syntaxe ou violation d'accès'".
Je précise que ce type de requête fonctionne parfaitement avec le composant TQuery du BDE. Je prècise également que si l'on remplace la requête ci-desssus par la requête :
select * from table1 where DELAI = :delai
le programme ne génére pas d'erreur.
Apparemment, il n'est pas possible de passer un paramètre à un sous-select d'une requête contenue dans le composant SQLQuery de DBexpress.
Merci par avance pour votre aide.
A bientôt
Partager