Maximus777
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Такой: Код: CREATE TRIGGER CLIENTS_AIUD FOR CLIENTS AFTER INSERT OR UPDATE OR DELETE AS DECLARE VARIABLE VAR1 varchar(256); DECLARE VARIABLE VAR2 varchar(256); BEGIN -- Наименование Предприятия if (new.TITLE <> old.TITLE) then EXECUTE STATEMENT('insert into CHANGES_OF_KKM (DATETIME, CHNG_EVENT, OLD_VALUE, NEW_VALUE, TABLE_NAME, FIELD_NAME, ROW_ID) values(:t1, ''Изменение Наименования'', :b1, :b2, ''CLIENTS'', ''TITLE'', 1)') (b1:=old.TITLE,b2:=new.TITLE,o1:=old.ID,t1:=CURRENT_TIMESTAMP) ON EXTERNAL 'localhost:/home/linuxoid/projects/DataBases/JournalKKM.gdb' AS USER 'SYSDBA' PASSWORD 'masterkey'; -- Смена Банка if (old.BANK <> new.BANK) then VAR1 = (select BANKS.TITLE from BANKS where BANKS.ID=old.BANK); VAR2 = (select BANKS.TITLE from BANKS where BANKS.ID=new.BANK); EXECUTE STATEMENT('insert into CHANGES_OF_KKM (DATETIME, CHNG_EVENT, OLD_VALUE, NEW_VALUE, TABLE_NAME, FIELD_NAME, ROW_ID) values(:t1, ''Смена банка'', :b1, :b2, ''CLIENTS'', ''BANK'', 1)') (b1:=VAR1, b2:=VAR2, o1:=old.ID,t1:=CURRENT_TIMESTAMP) ON EXTERNAL 'localhost:/home/linuxoid/projects/DataBases/JournalKKM.gdb' AS USER 'SYSDBA' PASSWORD 'masterkey'; | Делаю Update записи и в триггере получаю old.BANK = Null. Причём, меняю значение другого поля. Т.е. поле BANK не затрагивается вообще. Откуда там Null берётся? |