Wenn ich ein DBGrid nehme muss ich die Datenbank ja immer offen halten, wenn ich mit den Daten arbeiten will.
Das Ziel ist aber die Datenbank nach dem lesen der Daten so schnell wie möglich wieder zu schließen.
Wenn alle Datensätze gelesen sind kann ich ohne DBGrid die Verbindung lösen und lokal im Grid arbeiten bis mal etwas geändert wird, was selten vorkommt.
Was nicht verbunden ist, kann nicht kaputt gehen. (Single user
DB).
MemoryDatasets wie TFDMemTable (FireDac Memtable).. da liest Du die ganzen records rein und funktioniert wie das
Query selbst, aber ohne
DB-Anbindung.
Das geht dann auch mit nur 1 Zeile Code, in dem Fall
Code:
FDMemtable1.CopyDataset(FDQuery1, [coAppend,coRestart,coStructure]);
Wobei die coXXXX halt sehen musst, was Du da brauchst. UniDAC etc. haben solche MemoryDataSets auch, falls Du kein FireDAC hast