List:MaxDB« Previous MessageNext Message »
From:Dusan Kolesar Date:January 12 2007 5:13pm
Subject:Dinamic statement in trigger
View as plain text  
Hello,
is it possible to access trigger variables in dinamic sql statement:

CREATE TRIGGER EMPLOYEE_UPDATE FOR EMPLOYEE AFTER UPDATE EXECUTE
(
   VAR
     EVENTTABLEID FIXED(10);
     COLNAME VARCHAR(30);
     STMT VARCHAR(100);
     COLCHNG FIXED(38);
     I FIXED (38);

   SET COLCHNG = 0;
   SET I = 1;

   DECLARE COLNAME_CURSOR CURSOR FOR
     SELECT COLUMNNAME FROM DOMAIN.COLUMNS WHERE TABLENAME = 'EMPLOYEE';
   WHILE ($RC <> 100) DO
   BEGIN
     FETCH COLNAME_CURSOR INTO :COLNAME;
     SET stmt = 'IF (OLD.' || colName || ' <> NEW.' || colName || ') THEN  
SET colChng = ' || colChng|| ' + ' ||  i;
     EXECUTE stmt;
     SET I = I*2;
   END;

   CALL ADMIN.GENERATE_EVENTS(1, :OLD.ID, 2, :COLCHNG);
)

EXECUTE stmt; doesn't work
it should do next task:
IF (NEW.COLNAME <> OLD.COLNAME) THEN
   SET colChng = colChng + i;
for every column of table "EMPLOYEE" but returns an error.

Can I obtain such result in trigger code ?

Thank you for your support, Dusan.

-- 
Dusan Kolesar
Helsinska 19
040 13  Kosice
Slovakia
e-mail primary : d.kolesar@stripped
e-mail alternative : d.kolesar@stripped
ICQ# : 160507424

Thread
Dinamic statement in triggerDusan Kolesar12 Jan
  • RE: Dinamic statement in triggerThomas Anhaus15 Jan
    • Re: Dinamic statement in triggerDusan Kolesar15 Jan
      • RE: Dinamic statement in triggerThomas Anhaus15 Jan
        • Re: Dinamic statement in triggerDusan Kolesar15 Jan
          • RE: Dinamic statement in triggerThomas Anhaus15 Jan