Zitat von
iamjoosy:
ich nehme Messdaten auf, die alle 8,3ms generiert werden (120 Hz). Nun will ich diese Daten in einer
DB speichern. Aus mehreren Gründen will ich diese aber nicht direkt in die
DB schreiben, sondern zuerst im Speicher cachen, un nach Abschluss der Datenaufnahme physikalisch in die
DB schreiben.
soweit gut.
Zitat von
iamjoosy:
1) Mit einem Clientdataset und Datasetprovider und AdoDataset
2) Mit AdoDataset und BatchUpdate
jeweils mit einer AdoConnection auf eine
Access DB
Das Problem ist, dass das bei beiden Ansätzen das speichern der cached data ewig dauert, was man dem späteren Nutzer nicht zumuten kann.
Ich würde die Werte in einer eigenen Liste verwalten und darauf einen Thread loslassen: Bis der thread irgendein Ende-Signal bekommt, soll er die Liste durchgehen, den Wert in die
DB speichern und danach den Eintrag in der Liste löschen.
Vorteil: die Speicherung ist so schnell wie Applikation und
DB es verkraften, der Benutzer muss am Ende des Programms nur warten, bis der Cache halt vollends abgearbeitet wurde und nicht so lange, wie eine komplette Speicherung dauert.