Re: Transaktionen verschachteln

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hallo Andreas,

"Andreas Vogt" <webmaster@xxxxxxxxxxxxxxxxx> schrieb:
ich starte in einer Prozedur eine Transaktion, rufe innerhalb dieser
eine Prozedur mit Transaktion auf. Wie "merkt" die Transaktion in
erster Ebene dass in der Unterprozedur bei Fehler ein Rollback
stattfand?
Also z.B.:
....
ws.BeginnTrans
rs.edit
rs!Menge = 100
rs.update

call nextProc

if msgbox("speichern?",vbyesno) = vbyes then
ws.CommitTrans
else
ws.Rollback
End if
....

Sub nextProc
On Error goto Fehler
ws.BeginnTrans
rs.edit
rs!Menge = 100
rs.update
ws.CommitTrans

Fehler:
ws.Rollback
End sub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

IMHO sollte es ausreichen, wenn Du aus der Sub (für die innere Transaktion) eine Function machst. Diese Function liefert dann als Ergebnis zurück, ob ein CommitTrans oder ein Rollback stattgefunden hat. Im Falle eines Rollbacks kann die aufrufende Prozedur ebenfalls einen Rollback veranlassen.
Der Aufruf könnte dann ungefähr so aussehen:

If NextProc = cRollback Then
ws.Rollback
Exit Sub
End if


HTH
--
Thomas

Homepage: www.Team-Moeller.de

.



Relevant Pages

  • Transaktionen verschachteln
    ... eine Prozedur mit Transaktion auf. ... Sub nextProc ... On Error goto Fehler ...
    (microsoft.public.de.access)
  • Re: gespeicherte Prozedur...
    ... 15 min eine Prozedur ausführen soll. ... Da aber die Tabelle, ... dass ich die Daten aus der Oracle-DB zuerst ... ich kann gar nicht die Transaktion finden, ...
    (microsoft.public.de.sqlserver)
  • Re: Wie beendet man einen Trigger vorzeitig?
    ... Der Aufrufer, der den Trigger ausgelöst hat, wird sich dann ggf. ... The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION. ... einer Transaktion stattfindet, ...
    (microsoft.public.de.sqlserver)
  • Rollback wird nicht beendet
    ... einer offenen Transaktion. ... Irgendwo unter "blockiert von" müsste Deine ... >ich habe gestern einen Vorgang auf einer Tabelle ... >Dieses Rollback nimmt kein Ende. ...
    (microsoft.public.de.sqlserver)
  • Re: ScopeIdentitiy in einer Transaction
    ... bestehenden Transaktion teilnimmt oder falls keine ... -- Angepasste Prozedur ... SET NOCOUNT ON; ... SET @TranCount = @@TRANCOUNT ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)