Announcement

Collapse
No announcement yet.

OldValue bei MEMO / BLOB Feldern immer leer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OldValue bei MEMO / BLOB Feldern immer leer

    Hallo zusammen,

    ich möchte VOR dem tabelle.post alle geänderten Werte in einem Log speichern und verwende dazu:

    Code:
    if dm.tposition.Fields[i].OldValue<>dm.tposition.fields[i].Value then begin
      vtmp2:=dm.tposition.fields[i].fieldname+' "';
      vtmp2:=vtmp2+VarToStr(dm.tposition.Fields[i].OldValue)+'" > "'+vartostr(dm.tposition.Fields[i].Value)+'"';
      vtmp2:=StringReplace(vtmp2, #10, '', [rfReplaceAll]);
      vtmp2:=StringReplace(vtmp2, #13, '', [rfReplaceAll]);
      vtmp2:=StringReplace(vtmp2, '"', '', [rfReplaceAll]);
      vliste.add(vtmp2);
    end;
    Das Problem ist, dass bei MEMO Feldern der Wert OldValue immer = '' oder NULL ist. Gibt es hierfür einen Workaround? oder mache ich ggfs. etwas falsch?

    Grüße,

    Yusuf

  • #2
    Hallo,

    ich kann dir zwar nicht direkt mit deinem Problem helfen, aber wenn Du ADS 7 oder höher einsetzt, dann kannst du die Protokollierungsthematik auch direkt mit Trigger in der Datenbank lösen. Vorausgesetzt, du verbindest dich über ein Data Dictionary zur DB. Allerdings funktioniert dort der Ungleichheitsoperator nur für MEMO und nicht für BLOB.

    Damit du nicht alle Trigger manuell schreiben mußt, kannst Du auch den ADS LogManager verwenden: http://www.upscene.com/products/audit/adslm_main.htm


    Thomas
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Originally posted by Thomas Steinmaurer View Post
      Hallo,

      ich kann dir zwar nicht direkt mit deinem Problem helfen, aber wenn Du ADS 7 oder höher einsetzt, dann kannst du die Protokollierungsthematik auch direkt mit Trigger in der Datenbank lösen. Vorausgesetzt, du verbindest dich über ein Data Dictionary zur DB. Allerdings funktioniert dort der Ungleichheitsoperator nur für MEMO und nicht für BLOB.

      Damit du nicht alle Trigger manuell schreiben mußt, kannst Du auch den ADS LogManager verwenden: http://www.upscene.com/products/audit/adslm_main.htm

      Thomas
      Hallo Thomas,

      wir müssen leider abwärtskompatibel zu ADS 6.2 bleiben, daher sollte es clientseitig gelöst werden.

      Comment

      Working...
      X