Entschuldigung, manchmal ist man wirklich betriebsblind
.
Die Fehlermeldung der
Exception ist natürlich:
Insufficient memory for this operation
Ich habe mittlerweile ein Vergleichsprogramm geschrieben mit folgender Idee:
- Aufbau eines Beispiel-Datasets mit hinreichend vielen Felddefinitionen
- so viele Datensätze hineinschreiben, bis der Speicherplatz knapp wird
Man kommt hier mit der mit der TFdMemtable viel wieder als mit dem
alten TClientDataset: es können viel mehr Datensätze angelegt werden, bis ca. 1.9GB Hauptspeicher verbraucht sind. Beim TClientDataset kommt der Speicherfehler schon bei knapp 1 GB Daten.
Zusätzlich habe ich noch TVirtualTable von DevArt ausprobiert, das funktioniert ebenfalls gut, es passen aber weniger Datensätze in ein Dataset. Aus irgendeinem Grund funktioniert kbmMemTable in meinem Beispiel wieder nicht. Das mag daran liegen, dass die herunterladbare Freeware-Version schon einige Jahre alt ist und es keine Trial-Version für ein aktuelle Delphi gibt. Erst nach einigem Basteln konnte ich die Units zum kompilieren bringen, habe mich hier aber vermutlich irgendwo verzettelt.