Hallo!
Oder wenn Du Deinen
SQL-String nicht zusammenbastelln willst:
Delphi-Quellcode:
select
*
from
Tabelle
where
(0 = :TEST_NAME or USERNAME = :USERNAME)
and (0 = :TEST_ID or USERID = :USERID)
and (0 = :TEST_VON or DATUM_VON = :DATUM_VON)
and (0 = :TEST_BIS or DATUM_BIS = :DATUM_BIS)
Delphi-Quellcode:
qry.ParamByName('TEST_NAME').AsInteger := Length(eUsername.Text);
qry.ParamByName('USERNAME').AsString := eUsername.Text;
qry.ParamByName('TEST_ID').AsInteger := eUserID.AsInteger;
qry.ParamByName('USERID').AsInteger := eUserID.AsInteger;
qry.ParamByName('TEST_VON').AsInteger := Integer(cbCheckDatumVon.Checked);
qry.ParamByName('DATUM_VON').AsDate := dtpDatumVon.Date;
qry.ParamByName('TEST_BIS').AsInteger := Integer(cbCheckDatumBis.Checked);
qry.ParamByName('DATUM_BIS').AsDate := dtpDatumBis.Date;
Wenn der Parameter TEST_xxx = 0 gesetzt wird, dann wird die entsprechende Spalte nicht ausgewertet.
Grüße