title image


Smiley Re: Letzten Datensatz rückgängig machen
Servus Miccook,



mal ganz abgesehen von System (von Firebird etc. hab ich keine Ahnung), wäre mein Denkansatz folgender:

ich denke, die einzige Problematik liegt daran, nach einem commit den eingetragenen Datensatz wieder zu finden, für den das Rückgängig gemacht werden soll, und vor allem, die richtige Aktion vorzunehmen.



Wenn wir also genau diese Daten brauchen, sollten wir uns genau diese Daten speichern. Ich würde also eine neue Tabelle generieren, nennen wir sie mal TempAction. Dort speicherst die des Datensatzes, der über das Formular eingetragen wurde. Zusätzlich brauchst ein Feld, wo die durchgeführte Aktion rein schreibst, also "insert" oder "update". Das Befüllen dieser Tabelle sollte sich per Trigger oder Ähnlichem realisieren lassen.



Beim Rückgängig machen lässt eine Prozedur über diese TempAction laufen. Aufgrund der ID und der dort eingetragenen Aktion kannst steuern, was mit dem Datensatz in der richtigen Tabelle geschehen soll, ein "delete" oder wiederum ein "update".

Bei einem Update, um den ursprünglichen Wert wiederherzustellen, bräuchtest natürlich eine Kopie des ursprünglichen Datensatzes, zum Beispiele in einer weiteren Tabelle, in der alle Kopien gespeichert werden, so lange sie benötigt werden.



Wenn dann in der TempAction noch reinschreibst, für welches Feld ein Update durchgeführt wurde, hättest zumindest mal alle Informationen, um ein Rückgängig durchzuführen (auch für ein rückgängig machen eines delete sollte dies reichen).



Besagte Prozedur, die über TempAction drüber läuft, müsste jetzt also aus diesen Informationen wieder eine entsprechende Anweisung formulieren. Ob und wie das geht, dürfte jetzt von deinem System abhängen, aber prinzipiell sollte es funktionieren.



Hoffe geholfen zu haben.



Ciao, WolfgangE
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: