![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBExpert
Firebird Trigger verhindert Datenupdate
Hallo ich habe folgendes Problem. Ich habe diese Trigger (mittels IBExpert) in meine Datenbank (Firebird 2.5) eingebaut:
Code:
Das Problem ist nun wenn ich 't' in das Feld pe_deltag einbaue wird das aktuelle Datum in das Feld pe_deldate eingetragen. Wenn ich jedoch nun versuche diesen Vorgang rückgängig zu machen (ich setze pe_deltag wieder auf 'f'), dann lässt dies der trigger nicht mehr zu (sprich pe_deltag bleibt 't' und pe_deldate enthält weiterhin das Datum).
CREATE TRIGGER TEST_BU0 FOR TEST
ACTIVE BEFORE UPDATE POSITION 0 AS begin if (new.pe_deltag = 't') then new.pe_deldate = current_timestamp; if (new.pe_deltag = 'f') then new.pe_deldate = null; end ^ |
AW: Firebird Trigger verhindert Datenupdate
Versuch mal:
SQL-Code:
CREATE TRIGGER TEST_BU0 FOR TEST
ACTIVE BEFORE UPDATE POSITION 0 AS begin if (new.pe_deltag = 't') then begin new.pe_deldate = current_timestamp; end if (new.pe_deltag = 'f') then begin new.pe_deldate = null; end end ^ |
AW: Firebird Trigger verhindert Datenupdate
ok das problem hat sich gelöst.
Die betreffende Tabelle hatte keinen Primärschlüssel. Nachdem ich der Tabelle einen Primärschlüssel hizugefügt hatte war das Problem weg. Fragt mich nicht wieso - ich hab keine Ahnung - aber es funktioniert. @mkinzler: deinen Vorschlag habe ich auch ausprobiert - hat aber nicht funktioniert. |
AW: Firebird Trigger verhindert Datenupdate
Wenn kein Primärschlüssel definiert ist, werden für ein Update eventuell alle Felder als Kriterium herangezogen.
Der Client kennt nur den Datensatz mit "t" und NULL im Feld "pe_deldate". Diesen findet er aber für weitere Updates nicht, da das Feld "pe_deldate" dank des Triggers einen Wert enthält. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz