Ich würde
zwei Abfragen verwenden; eine mit WHERE Bedingung und eine ohne.
Es gibt wahrscheinlich eine DataSource auf deinem Formular, dann wird dort umgeschaltet:
Delphi-Quellcode:
if EditFilter.Text ='' then
DataSource1.DataSet := AdoQueryAll
else
DataSource1.DataSet := AdoQueryFiltered;
Der Trick mit like und dem Parameter '%' kann bei grösserer Datenmenge zu langen Wartezeiten führen.
Wenn du nun aber mehr als 2 verschiedene Filter (und damit verschiedene WHERE Bedingungen) hast,
dann würde ist die
Query zur Laufzeit aufbauen/modifizieren.