Bonjour,
Quelqu'un peut-il m'aider à résoudre mon problème.
Je suis sous Delphi 10 avec une connexion à une base Firebird.
Je veux utiliser le composant TIBSQL pour récupérer des enregistrements d'une table.
Lorsque je définie ma requête directement dans le SQL_pltg.SQL
SELECT N_LOT , N_PLANT, NB_PIED, ANNEE, SEMAINE, SURFACE from PLANTING WHERE ID_SECT = 'Y2'"
et que je l'exécute, tout se passe très bien.
Lorsque j'exécute la même requête dans une unité comme ci-dessous
1 2 3 4 5 6 7 8 9 10
| begin
sect := s_sect.text;
SQL_pltg.Close;
SQL_pltg.sql.clear;
SQL_pltg.SQL.add('SELECT N_LOT,SURFACE,ANNEE,SEMAINE,NB_PIED FROM PLANTING WHERE ID_SECT = ''Y2''');
SQL_pltg.ExecQuery;
surf :=SQL_pltg.fieldbyname('SURFACE').asdouble;
nbpied :=SQL_pltg.fieldbyname('NB_PIED').asdouble;
an_fl :=SQL_pltg.fieldbyname('ANNEE').asinteger;
sem_fl :=SQL_pltg.fieldbyname('SEMAINE').asinteger; |
cela fonctionne parfaitement.
Mon problème vient du fait que je veux pouvoir changer ma valeur de sélection 'Y2' en la saisissant dans un TEDIT,
puis de l'introduire dans la requête de sélection sous forme de paramètre.
J'ai essayé différentes forme, mais aucune ne fonctionne:
SQL_pltg.SQL.add('SELECT N_LOT,SURFACE,ANNEE,SEMAINE,NB_PIED FROM PLANTING WHERE ID_SECT = ' + sect);
La compilation se déroule normalement, mais j'ai une erreur d'exécution: "SQL error code = -206, column unknown Y2"
SQL_pltg.SQL.add('SELECT N_LOT,SURFACE,ANNEE,SEMAINE,NB_PIED FROM PLANTING WHERE ID_SECT = :sect');
La compilation se déroule bien, l'exécution également, mais la requête ne renvoie aucunes données.
Sur les forums, je n'ai pas trouvé grand chose sur TIBSQL et rien qui explique mon problème. Et je ne comprends pas pourquoi dans le 1er test;
delphi prend la valeur que je lui passe pour le nom d'un colonne.
Toute aide sera la bienvenue.
Merci d'avance.
Partager