Subject Re: after updates
Author Dmitry Yemanov
13.07.2014 01:31, slucas@... wrote:
>
> CREATE TRIGGER ROVMRS_AU FOR ROVMRS AFTER UPDATE
> AS
> DEC LARE VARIABLE ff SMALLINT;
> BEGIN
> SELECT FIRING FROM TRIGGER_CONTROL WHERE EVENT = "GL_UPDATE" INTO :ff;
> IF ((OLD.GL = NEW.GL) AND (:ff = 0)) THEN BEGIN
> IF (OLD.RCHARGE <> NEW.RCHARGE) THEN BEGIN
> UPDATE ROMECH M SET M.RCHARGE = NEW.RCHARGE WHERE (M.IDIV =
> NEW.IDIV) AND (M.IRO = NEW.IRO) AND (M.IROVMRS = NEW.IC_ROVMRS);
> UPDATE ROPART P SET P.RCHARGE = NEW.RCHARGE WHERE (P.IDIV =
> NEW.IDIV) AND (P.IRO = NEW.IRO) AND (P.IROVMRS = NEW.IC_ROVMRS);
> END
> EXECUTE PROCEDURE TRGR_UPDATE_PMEVENT_CURRENT(NEW.IDIV,NEW.IRO,"I");
> END /*IF ((OLD.GL = NEW.GL) A ND (:ff = 0))...*/
> END~

Did you search one step deeper, inside AFTER triggers for ROMECH and ROPART?

> so i don't get why firebird is throwing back this error nor do i
> understand how to address it.

You need to find an AFTER (supposedly AFTER UPDATE) trigger that assigns
something into the NEW context.


Dmitry