How to insert a query string into a FireDAC query and add ' ' to the text?

Viewed 22
procedure TForm_Main.CB_Nom_Specialite_DemandeChange(Sender: TObject);
begin
  DM.FDQ_Find.SQL.Clear;
  DM.FDQ_Find.open('select ID_Specialite from Specialite where Nom_Specialite =  ' + (CB_Nom_Specialite_Demande.text)  ) ;
  ID_Specialite := 0 ;
  ID_Specialite := DM.FDQ_Find.FieldByName('ID_Specialite').AsInteger ;
end;

myimage

1 Answers

You can use SysUtils.QuotedStr():

DM.FDQ_Find.Open('select ID_Specialite from Specialite where Nom_Specialite = ' + QuotedStr(CB_Nom_Specialite_Demande.Text));

However, it would be better to use a parameterized query instead, eg:

DM.FDQ_Find.Open('select ID_Specialite from Specialite where Nom_Specialite = :specialite', [CB_Nom_Specialite_Demande.Text]);

Alternatively:

DM.FDQ_Find.SQL.Text := 'select ID_Specialite from Specialite where Nom_Specialite = :specialite';
DM.FDQ_Find.ParamByName('specialite').AsString := CB_Nom_Specialite_Demande.Text;
DM.FDQ_Find.Open;
Related