баг при выполнении триггера

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
vovich
Сообщения: 2
Зарегистрирован: 13 янв 2011, 08:28

баг при выполнении триггера

Сообщение vovich » 13 янв 2011, 08:37

Есть FirebirdSS 2.5
тригер имеет вид:

Код: Выделить всё

CREATE TRIGGER ZHURNAL_NARYAD_AU FOR ZHURNAL_NARYAD
ACTIVE AFTER UPDATE
POSITION 0
AS
BEGIN
if ((NEW.M_DEL=1) and (OLD.M_DEL<>1)) then
   begin
   Update ZHURNAL_NARYAD_BRIGADA SET M_DEL=1 WHERE ID_ZHURNAL=NEW.ID;
   Update ZHURNAL_NARYAD_INSTROUT SET M_DEL=1 WHERE ID_ZHURNAL=NEW.ID;
   Update ZHURNAL_NARYAD_INSTRIN SET M_DEL=1 WHERE ID_ZHURNAL=NEW.ID;
   Update ZHURNAL_NARYAD_MESTO SET M_DEL=1 WHERE ID_ZHURNAL=NEW.ID;
   end
END
на таблицы внутри if пользовательне имеет прав обновление, НО при невыполнении условия if, выскакивает ошибка, что пользователь не иеет прав на обновлении. Т.е. тригер зачем-то все равно проверяет комманды внутри условия, которое не выполняются. Вопрос- зачем?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: баг при выполнении триггера

Сообщение Dimitry Sibiryakov » 13 янв 2011, 14:35

На всякий случай. Сервер не может предсказать будет выполняться кусок кода или нет.

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: баг при выполнении триггера

Сообщение dimitr » 13 янв 2011, 14:42

права выполняются на этапе препаре, когда ветвление неизвестно

vovich
Сообщения: 2
Зарегистрирован: 13 янв 2011, 08:28

Re: баг при выполнении триггера

Сообщение vovich » 14 янв 2011, 09:54

все таки странное поведение, т.е. без назначения ненужных мне прав на таблицы я никак не могу использовать в тригерах подобные конструкции. И никак не выключить подобную проверку?

dimitr
Разработчик Firebird
Сообщения: 888
Зарегистрирован: 26 окт 2004, 16:20

Re: баг при выполнении триггера

Сообщение dimitr » 14 янв 2011, 10:01

никак на оба вопроса. Это нормально и наверняка даже соответствует стандарту.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: баг при выполнении триггера

Сообщение Dimitry Sibiryakov » 14 янв 2011, 14:49

vovich писал(а):т.е. без назначения ненужных мне прав на таблицы я никак не могу использовать в тригерах подобные конструкции.
Похоже, ты не в курсе, что права можно дать не пользователю, а непосредственно триггеру...

Ответить