Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Transaktion nicht komplett zurückfahren

  Alt 28. Feb 2006, 13:42
Irgendwie wird das auch ohne diese Savepoints gehen, aber nicht so schön und einfach. Beispiel : Für eine Rechnung gebe ich viele Artikel ein. Gleichzeitig sollen Rückgaben gutgeschrieben werden. Bei den Rückgaben verhaue ich mich total (z.B. völlig falsche Rückgabe eingegeben, wegen verwechseltem Kunden) 8) Nun will ich alles rückgängig machen. Die Lieferung allerdings nicht !

Das Bsp. ist fiktiv und in der Realität noch verschachtelter. Mein Gedanke ist nun der : am Anfang direkt Transaction starten. An dem Punkt, an dem die Eingabe der Rückgaben erfolgt setze ich einen Savepoint. Und in dem konstruierten Fall wäre ich mit einem Rollback zurück bis zum Savepoint fein raus und bräuchte lediglich die Rückgabe neu einzugeben. Und der Witz an der Geschichte wäre ja, daß ich die Transaktionen 1:1 im Programm abbilden könnte. Für die Rückgaben bräuchte man nur ein eigenes Form und im FormShow wird der Savepoint gesetzt. Der Transaktions-Stand der DB würde dann überhaupt nicht mehr interessieren ! Im Source wäre alles klar zu erkennen. Wenn das so genial gehen sollte, dann mache ich das auch so.

Habe gedacht, jemand würde so was schon in der Praxis einsetzen. Ja, muß mir tatsächlich mal das Rollback genauer ansehen. Hätte ich das in FB zu integrieren, ich würde dem Rollback einen Parameter für Savepoint mitgeben. Mal suchen.

Edit : Tja, manchmal geht es schneller und zweitens, als man denkt. Die haben neue Prozeduren gemacht. Ähnlich wie ich geahnt habe :

RollbackToSavePoint (SavePointName) und
SetSavePoint (SavePointName)

Schwieriges / neues Thema und trotzdem schnell gelöst. *freu*
Gruß
Hansa
  Mit Zitat antworten Zitat