Hallo Zusammen,
ich bin Firebird geschädigt im positiven Sinne und hab so meine Probleme mit
MySQL.
Aktuelle habe ich auf ein DataModul eine Firedac Connection und eine separate FDTransaction.
Der FDTransaction habe ich unter Options AutoCommit deaktiviert und bei DisconnectAction=xdRollback gesetzt.
Dann habe ich ein FDCommand welches auf die Connection und auf die zweite Transcation ohne AutoCommit hängt.
Ich starte die zweite tr2.StartTransaction füge zwei Datensätze hinzu und breche den DebugMode ab. Ich hätte jetzt erwartet dass die Inserts durch ein Rollback gelöscht werden. Genau das passiert nicht. Dann habe ich alle Datensätze inserten lassen und habe absichtlich tr2.Rollback; ausgeführt. Wird auch nicht ausgeführt.
Dann ist mir aufgefallen, wenn ich AutoCommit auf der ersten Transaction tr1 deaktiviere wird auf der zweiten Transaction tr2 AutoCommit ebenfalls deaktiviert.
Wenn ich die Doku für
Transaction richtig verstanden habe, unterstützt Firebird zwei FDTransaction mit unterschiedlichen Einstellungen und
MySQL eben nicht. Wenn Autocommit deaktiviert ist und ich rufe Rollback auf, müssen doch alle Änderungen rückgängig gemacht werden. Was übersehe ich hier?