Einzelnen Beitrag anzeigen

RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#7

AW: DBExpress: Wie mehrere Transaktionen gleichzeitig handeln?

  Alt 12. Jul 2012, 08:29
Ich redete von zwei gleichberechtigten nichtmodalen Fenstern, die nebeneinander offen sein können und deren Transaktionen unabhängig voneinander sind.
TSQLConnection.BeginTransaction liefert dir eine TDBXTransaction zurück, die du beim zugehörigen CommitFreeAndNil bzw. RollBackFreeAndNil wieder übergeben musst.
So weit, so klar, nur bei folgendem Quelltext (untested) ist die Zuordnung Transaktion - Operation in meinen Augen nicht möglich.
Delphi-Quellcode:
TA1 := Conn.BeginTransaction;
TA2 := Conn.BeginTransaction;
DataSet1.Open; // TA1
u := DataSet1.FieldByName('USER_ID').AsInteger; // TA1
DataSet1.Close; // TA1
DataSet2.Open; // TA2
DataSet1.FieldByName('USER_ID').AsInteger := u; // TA2
DataSet2.Post; // TA2
DataSet2.Close; // TA2
Conn.RollbackFreeAndNil(TA1);
Conn.CommitFreeAndNil(TA2);
Bitte keine neue Diskussion über den Sinn dieser Operation und die Aufteilung in 2 Transaktionen, es ist lediglich ein Beispiel zur Veranschaulichung. Ich wollte mir keine 2 Seiten Code ausdenken, um einen tatsächlichen (undurchsichtigen) Fall zu konstruieren.

Wie ist es bei obigem Quelltext möglich, die Operationen den Transaktionen zuzuordnen?
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat