Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
Delphi 10.4 Sydney
|
AW: Serverseitiges Logbuch über Datenänderungen
21. Okt 2017, 17:35
In Firebird gibt es keinen zentralen trigger, glaube ich.
im Trigger der tabelle hast du im Insert/update zugriff auf die NEW-Variable, im Update/delete auf die OLD-variable
technisch kannst du dann deine steuertabelle auslesen und dann entsprechend die old/new variableninhalte vergleichen (beim update).
beim insert würde ich keine feld-log schreiben, weil die werte sind ja eh in der tabelle. beim delete musst halt ma schaun, ob du wegspeichern willst, was gelöscht wurde.
Ich selbst mache es nicht in der datenbank, ich habe mir ein Objekt in Delphi geschrieben, welches beim Dokument erstellen sich eine liste der ausgangswerte im Dataset macht und diese in einer stringliste (hab ich vor Jahren geschrieben, jetzt ginge da vllt auch was anderes, denk da an JSON) und diese liste dann komprimiert in die BD.
Beim Editieren dann wurde die alte Liste wieder geladen und beim erneuten Speichern gegen die alte verglichen und gleiche werte rausgeworfen. Geblieben sind nur die veránderten werte und die wurden wieder komprimiert weggeschrieben.
Das ganze waren dann pro formular und zu überwachender tabelle 3 zeilen, das kann man aber noch optimieren mit einem Wrapper der sich um mehrere tabellen kümmert
|