Ob ich eben
cds.First
while not cds.EOF
cds.Delete
oder eben
cds.EmptyDataset
schreibe, sollte bei Logchanges = False, das selbe sein.
Nein, ganz und gar nicht. Bei EmptyDataSet kann das ClientDataSet ganz andere Mechanismen verwenden, als beim Löschen einzelner Sätze (noch dazu von vorne an). Bei jedem Delete werden allenfalls kleine Blöcke freigegeben, während ein EmptyDataSet den gesamten reservierten Puffer auf einmal freigeben kann. Was genau passiert, ist leider tief in den
Midas-Sourcen verborgen.
Es ist auch nicht so, daß der vom Taskmanager als verwendet angegebene Speicher nicht doch als freier Speicher vom Memory-Manager verwaltet wird. Erst wenn dieser den Speicher wieder an das Betriebssystem zurückgibt, kann der Taskmanager dieses auch anzeigen.