Stimme SirRufos Kommentar hier zu. Die richtige Antwort auf "Wie mache ich das?" ist "Tu das nicht; das ist der falsche Weg."
Wenn Sie Werte direkt in die Abfrage einfügen, können Hacker einen Weg finden, Dinge in Ihre Abfrage einzufügen, die als interpretiert werden SQL-Befehle. Dies wird als SQL-Injection bezeichnet , und es war in den letzten Jahrzehnten für Schäden in Milliardenhöhe verantwortlich. (Nicht übertreiben.)
Der richtige Weg, dies zu tun, besteht darin, Ihren SQL-Code sauber von Ihren Daten zu trennen, indem Sie Parameter verwenden etwa so:
ADOQuery1.SQL.Clear;
//: before an identifier specifies a parameter
ADOQuery1.SQL.Add('SELECT tbl.emailAddress, tbljob.Time FROM '+
'dbwindowwash.tblclient, dbwindowwash.tbljob, dbwindowash.tbljobclientworker '+
'WHERE tbljobclientworker.jobID = tbljob.jobID AND '+
'tbljobclientworker.clientID = tblclient.clientID AND tbljob.Date = :date';
//parse the query and find parameter declarations
ADOQuery1.Prepare;
//set a value for the parameter
ADOQuery1.ParamByName['date'].AsDateTime := TodaysDate;
ADOQuery1.Open
Die genaue Syntax zum Festlegen des Werts eines Parameters kann sich von einem Datensatztyp zum anderen unterscheiden, aber das sollte Ihnen die Grundidee vermitteln.