Die Grids implementieren ihre Funktionalität i.a. von Grund auf selbst. Hier sollte der Fehler also in der Form nicht auftreten. Das cxGrid von Developer Express z.B. verwendet die
VCL überhaupt nicht. Die Editorensammlung ist
hier zu begutachten.
Der Ansatz, 300.000 Datensätze zu filtern ist per se falsch. Wozu lädst Du so viele Daten in den Hauptspeicher? Die wird sich doch niemals jemand in Gänze anschauen. Zumal dauert das doch...
Natürlich sollte man Fehler dieser Art zunächst analysieren:
Der Fehler tritt auch beim Editieren eines Datensatzes auf. Klicke im Grid auf einen Datensatz, verändere unten irgendeinen Wertdie SpeciesNo und klicke anschließend auf den freien Bereich im Grid=> gleiches Phänomen.
Noch besser: Editiere Category im Grid, drücke Tab (oder klicke auf die Spalte 'Length (cm)' im gleichen Datensatz und anschließend auf den freien Bereich im Grid
nun versucht das arme Grid, den Wert aus der 'Category' in das Feld 'Length' zu speichern, was eine
Exception auslöst. Mir scheint, das Teil ist Schrott.