![]() |
Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE
TRIGGER -> New - Werte können nciht geändert werden
Hallo zusammen,
folgender Trigger ergibt die Fehlermeldung: NEW-Werte für diesen Trigger-Typ können nicht geändert werden.
Delphi-Quellcode:
Weiss jemand Rat ?
CREATE OR REPLACE TRIGGER DBP_NAECHSTE_PRUEFUNG_AIU AFTER INSERT OR UPDATE ON SYSDBP.DBP_LEISTUNGSWERTE FOR EACH ROW
BEGIN IF (:new.letzte_ap < :new.letzte_ip) and (:new.letzte_ap < :new.letzte_fp) and (:new.letzte_ap <> NULL) THEN :new.NAECHSTE_P := :new.LETZTE_AP; :new.NAECHSTE_P_ART := 'Äussere Prüfung'; END IF; END; / Gruss Holger |
Re: TRIGGER -> New - Werte können nciht geändert werden
Hi,
ich kenn mich jetzt mit Oracle nicht aus, aber kann es sein, dass du die :new Werte nur beschreiben kannst, wenn du in einem BEFORE INSERT OR UPDATE Trigger bist? mfg Leonard |
Re: TRIGGER -> New - Werte können nciht geändert werden
Zitat:
Und "<> null" kann nicht funktionieren. Die einzigen Operatoren auf null, die nicht selbst null zurückliefern sind "is null" und "is not null". Kurzfassung: deine if-clause ergibt immer null und niemals true oder false. |
Re: TRIGGER -> New - Werte können nciht geändert werden
Vielen dank für die Hilfen,
aber wenn ich ein before Insert or update nehme, kann ich dann schon die neuen Werte vergleichen, die eingefügt oder upgedatet werden ? oder wo liegt der Unterschied bei bevor oder after ? Gruss Holger |
Re: TRIGGER -> New - Werte können nciht geändert werden
ganz einfach:
before : die daten wurden noch nicht geschrieben (also du kannst noch mit new.feldname das ganze manipulieren) und danach wird geschrieben after: die daten sind geschrieben die new.feldname daten kannst du nicht manipulieren, nur lesen. bsp für beide: before: prüfen von werten und ersetzten interbase dialect
SQL-Code:
after: z.b. bei after update (protokollieren)
if new.id is null then new.id = 1
du hast ein after update trigger in der tabelle ABC und in der tabelle LOG willst du das protokollieren
SQL-Code:
viel spass daniel
insert into TBL_LOG (TABNAME,USER,ZEIT) values ('ABC',user,'now')
|
Re: TRIGGER -> New - Werte können nciht geändert werden
Zitat:
Zitat:
mfg Leonard Edit: Das finde ich an der DP echt :thumb: da kann man unbesorgt vor dem Absenden nochmal schauen und wird festellen, dass man nicht der erste war mit einer Antwort. :dp: |
Re: TRIGGER -> New - Werte können nciht geändert werden
Alles klar,
funktioniert jetzt. Danke Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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-2025 by Thomas Breitkreuz