Search code examples
sqldelphi-10.3-riodelphi-11-alexandria

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


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


Solution

  • 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;