Am 15.10.2013 14:34, schrieb Ulrich Mᅵller:
> Hallo Lutz,
>
> es sieht so aus, als wolltest du einen Massenupdate machen.
> Transaktionen muᅵ man sehr bedacht einsetzen, denn ᅵblicherweise will
> man damit eine Logik wie "Alles oder gar nichts" umsetzen.
> Stelle die Transaktionen in kleinere Update Einheiten zusammen und
> versuche sie nur dort zu gebrauchen, wo sie einen Sinn ergeben. Niemals
> das "Commit" vergessen!!!. Dieses ist ein Fehler, der immer gerne
> gemacht wird. Solange kein Commit gemacht wird, bleiben die geᅵnderten
> Datensᅵtze fᅵr gesperrt , wird wohl auch in Access so sein.
Nunja, es handelt sich um Buchungen. Die mᅵssen auch konsistent sein.
Bei einem Fehler muss alles zurᅵckgerollt werden!
Ich seh auch keine richtige Mᅵglichkeit das in Einzelschritte zu zerlegen.
Die gesamte Operation erfolgt in einer Funktion welche Boolean zurᅵckgibt.
Dieser Aufruf ist durch die Transaktion gekapselt und je nach Ergebnis
erfolgt ein Commit oder Rollback. Das ist eigentlich sicher was das
Beenden der Transaktion angeht.
> ᅵber wie viele Records in den Tabellen reden wir?
Schwierig zu beziffern.
Einmal um die 300 Positionen, fᅵr die es je ca. 7, 8 Buchungen gibt.
Dazu nochmal ein paar 1000 Positionen mit 2 Buchungen.
Der Einfachheit halber mache ich die 1. Buchung fᅵr die 300 Positionen
in einem Rutsch, dann die 2. Buchung usw. Logisch zusammengehᅵrend sind
aber die Buchungen.
Schwierig zu erklᅵren.
Ich schau es mir nochmal an, ob ich dort bestimmte Teile irgendwie in
mehrere Transaktionen teilen kann.
Aber den 3218-Fehler hatte ich auch mit auskommentierter Transaktion.
Deswegen bin ich da bissl unsicher, was die genaue Ursache ist.
Lutz