OKB-000267 | Transaktionen mit Database.Access

Werbung
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
Herunterladen