Es gibt eine weniger gute Alternative ....
Delphi-Quellcode:
if trim(Edit1.text) <> '' THEN
SQLWHERE :='Vorname = '''+edit1.text+''''
else begin
SQLWHERE = '(Vorname LIKE ''%'') OR (Vorname IS NULL)';
end;
und eine gute Alternative ...
Wenn ein Feld nicht "gefiltert" werden soll, dann baue die Bedingung garnicht erst in die WHERE Klausel ein.
Delphi-Quellcode:
if trim(such_vorname.text) <> '' THEN
SQLWHERE1 :='Vorname = '''+such_vorname.text+''''
else
SQLWHERE1 = '';
if trim(such_name.text) <> '' THEN
SQLWHERE2 :='Name = '''+such_name.text+''''
else
SQLWHERE2 = '';
IF (SQLWHERE1<>'') AND (SQLWHERE2<>'') THEN
SQLWHERE1:=SQLWHERE1+' AND ';
SQLWHERE_COMPLETE:=SQLWHERE1+SQLWHERE2;
So kommst du ohne LIKE aus, und wenn du z.B. nur nach Vornamen suchst, wird auch nur " Vorname = ''Paul'' " als Bedingung in die WHERE Klausel geschrieben. "Name" kann einen beliebigen Wert enthalten oder NULL sein ...