Bonjour à toutes et à tous,

Je viens demander de l'aide ici car j'ai un petit souci aujourd'hui.

J'avais à l'origine une requête de ce genre :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select d.* 
from demande d
where d.id = :ID_DEMANDE

dans mon query et dont je renseignais le seul paramètre ID_DEMANDE en passant par le ParamValues.

Aujourd'hui, il y a un des champs du select que je veux voir à vide ou avec la valeur du champ initial en fonction d'une question posée à l'utilisateur.

Je m'explique.

Si je veux détailler le select, j'aurai :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select d.id, d.date_demande, d.montant, d.statut, d.supprime
from demande d
where d.id = :ID_DEMANDE

Si l'utilisateur dit qu'il ne veut pas voir le statut sur l'interface, j'aimerai pouvoir faire par exemple :

Dans le SQL :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select d.id, d.date_demande, d.montant, :STATUT as statut, d.supprime
from demande d
where d.id = :ID_DEMANDE

Dans le code Delphi :
- avoir dans le cas où je veux l'afficher ->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
IBQDemande.Params.ParamValues['STATUT'] := 'd.statut'
- avoir dans le cas où je veux pas l'afficher ->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
IBQDemande.Params.ParamValues['STATUT'] := 'NULL'
Le souci, c'est que tel quel, ça me retourne l'erreur :

"Le projet XXX a déclenché la classe d'exception EIBInterbaseError avec le message 'Dynamic SQL Error SQL error code = -804 Data Type unknown'.

Je pense que c'est parce qu'en insérant les valeurs de paramètres, je dois me retrouver avec le SQL suivant :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select d.id, d.date_demande, d.montant, 'd.statut' as statut, d.supprime
from demande d
where d.id = :ID_DEMANDE
et du coup il ne l'interprèterait pas.

Quelqu'un aurait une idée ?

Merci par avance