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."