AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Transaktion innerhalb Transaktion...IBDAC
Thema durchsuchen
Ansicht
Themen-Optionen

Transaktion innerhalb Transaktion...IBDAC

Ein Thema von haentschman · begonnen am 3. Feb 2012 · letzter Beitrag vom 3. Feb 2012
Antwort Antwort
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Transaktion innerhalb Transaktion...IBDAC

  Alt 3. Feb 2012, 09:32
Also ich mache es in meinem DBOobjekt ähnlich: Ich setze ein Flag (fInTransaction=boolean) und erzeuge eine "objektglobale" Transaktion. Alle ab jetzt vom DBObjekt erzeugten querys/sqlcommands bekommen das "objektglobale" Transaktionsobjekt zugewiesen bis ich sowas wie DBObjekt.commit oder DBObjekt.rollback mache.Dort wird fInTransaction" wieder auf FALSE gesetzt und die Transaktion beendet. Ist das Objekt nicht "InTransaction" dann bekommt jedes erzeugte query/command seine eigene Transaktion. Die wird dann per default im Destruktor commited und freigegeben. Zusätzlich kann ich auch noch trotz gesetztem InTransaction Querys/Commands mit eigenen Transaktionen erzeugen, das benötige ich aber nicht wirklich, wie sich herausgestellt hat. Klappt seit Jahren.
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.441 Beiträge
 
Delphi 12 Athens
 
#2

AW: Transaktion innerhalb Transaktion...IBDAC

  Alt 3. Feb 2012, 11:25
Danke für Eure Anteilnahme...

Es gestaltet sich wahrscheinlich einfacher als gedacht. Folgendermaßen habe ich es gelöst:
einfaches Objekt (Daten für mehrere Tabellen):
- keine Transaktion von außen
- in der Save Prozedur wird eine Transaktion erzeugt und der Query zugeordnet, Commited oder zurückgenommen.

Liste (Objekte mit Daten für mehrere Tabellen)
- in der Connection eine Transaktion starten (Quasi global für die Verbindung)
- Abarbeitung wie einfaches Objekt
- die "globale" Transaktion Commiten oder zurücknehmen.

...so sollte es eigentlich gehen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#3

AW: Transaktion innerhalb Transaktion...IBDAC

  Alt 3. Feb 2012, 12:24
IIRC habe ich das mal so gemacht: sowohl Objekte als auch Listen stammen von einer gemeinsamen Vorfahrklasse ab. Diese besitzt eine Klassenvariable ExplicitTransaction. Soll eine Liste in einer Transaktion abgearbeitet werden, setzt sie diese auf true, arbeitet und setzt sie anschließend zurück. Die Objekte werten die Variable aus und starten bei false selbst eine Transaktion. Das ist vielleicht nicht sonderlich schön, hat aber funktioniert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz