Re: transaction und rollback
From: Reiner Wolff (spam_at_wolffsrudel.de)
Date: 12/28/04
- Next message: Aimo Grosse: "Access 2000 Autowert-Felder"
- Previous message: Marc Meyer: "Import-Spezifikation"
- In reply to: Berold: "transaction und rollback"
- Next in thread: Berold: "Re: transaction und rollback"
- Reply: Berold: "Re: transaction und rollback"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 28 Dec 2004 08:35:17 +0100
Moin Berold,
die Angabe des vollständigen Namens wäre üblich.
*Berold* schrieb:
> ich füge in einer Schleife mehrere Einträge in mehrere Tabelle und lösche
> einige der Tabellen .
> Ich möchte, dass falls wenigstens ein Eintrag in das Datenbank nicht
> eingefügt werden kann, dann alle Änderungen in den Datenbank rückgängig
> machet werden.
> Ich versuche das Problem mit dem folgenden Code zu realisieren, aber der
> Rollback wird nicht ausgeführt.
> Was mache ich falsch???
> Dim db As Database
> 'Set db = CurrentDb.OpenRecordset
> Dim connection As ADODB.connection
> Set connection = New ADODB.connection
> Set connection = CurrentProject.connection
> connection.Execute "begin transaction"
> Schleife
> CurrentDb.Execute SQLstring
> Ende der Schleife
> connection.Execute "commit transaction"
Hier laufen gleich mehrere Dinge nicht richtig:
1.
Versuchst Du die Transaktion in der Verbindung 'CurrentProject.Connection'
zu starten und zu beenden während die Datenänderungen über
'CurrentDB.Execute' laufen. Du musst dafür sorgen, dass die Datenänderungen
über die gleiche Connection durchgeführt werden, da eine Transaktion nicht
Verbindungsübergreifend funktionieren kann.
2.
Du startest die Transaktion mit 'Begin Transaction', die ADODB.Connection
kennt dafür aber einen eigenen Befehl, den ich dafür vorziehen würde
Connection.BeginTrans
Connection.CommitTrans
Connection.RollbackTrans
3.
Du hast keinen Code gepostet, in dem der Rollback durchgeführt werden soll.
Wenn die Codezeile erst später kommen soll, dann kann auch das nicht
funktionieren, weil bereits ein 'Commit' an die Datenbank gesand wurde. Du
musst also abfragen, ob Fehler aufgetreten sind und dann dementsprechend
handeln. Das kannst Du natürlich auch über eine Fehlerabfangroutine
erledigen lassen.
HTH
Greetinx aus Kiel
Reiner
-- Wenn Architekten so bauen würden, wie Programmierer Ihre Programme machen, könnte ein einziger Specht ganze Städte zerstören.
- Next message: Aimo Grosse: "Access 2000 Autowert-Felder"
- Previous message: Marc Meyer: "Import-Spezifikation"
- In reply to: Berold: "transaction und rollback"
- Next in thread: Berold: "Re: transaction und rollback"
- Reply: Berold: "Re: transaction und rollback"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|