OKB-000267 | Transaktionen mit Database.Access Montag, 20. September 2004 11:11 FAQ-Nr: OKB-000267 Betrifft: ab orgAnice SQL Frage: Transaktionen mit Database.Access Lösung: Es wird ausdrücklich empfohlen, für Transaktionen die neue Klasse Database.Access zu verwenden. Die aus Kompatibilitätsgründen zu orgAnice 3 verbleibenden Methoden Database.BeginTransaction, Database.Commit und Database.Rollback sollten nicht mehr verwendet werden! Die Verwendung von Database.Access hat den Vorteil, dass nicht explizit ordnungsgemäß abgeschlossene Transaktionen (z. B. durch unbehandelte Fehler, oder fehlende .Rollback bzw. .Commit in der Fehlerbehandlung) automatisch zurückgefahren werden (es wird intern ein Rollback ausgeführt) Beispiele: With Database.Access ... .BeginRead und/oder .BeginTransaction ... .Commit End With ‘ hier wird automatisch EndRead und/oder Rollback aufgerufen oder: Sub Test() Dim pAccess As Access Set pAccess = Database.Access ... pAccess.BeginRead und/oder pAccess.BeginTransaction ... evtl. pAccess.Commit End Sub ‘ hier wird automatisch EndRead und/oder Rollback aufgerufen In beiden Fällen wird auch bei unerwartetem Verlassen der Prozedur (z.B. Fehler, Exit Sub, …) EndRead und/oder Rollback aufgerufen. Achtung! Der Code: Database.Access.BeginTransaction … Database.Access.Rollback funktioniert nicht! Codebeispiele Seite 1