Grundsätzlich gibt es drei verschiedene Möglichkeiten, um Daten (die in einem DBGrid angezeigt werden) zu filtern:
1.) über
SQL
Vorteil: schnell, wenig Resourcenverbrauch
Nachteil: nur mässig flexibel, aufwändig wenn Filter zur Laufzeit generiert werden soll
2.) über
Property Filter
Vorteil: einfach zu verwenden, Filter dynamisch zur Laufzeit änderbar
Nachteil: je nach Datenmenge teilweise sehr schlechte Performance
3.) über
Event OnFilterRecord
Vorteil: sehr komplexe Filterbedinungen sind möglich
Nachteil: wie 2.)
Alle diese 3 Filtertechniken setzen am TDataset bzw. TQuery an.
Ein DBGrid kann selbst nicht filtern, sondern es zeigt nur das an, was sich in der Datenmenge befindet.