![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Триггеры на системных таблицах в InterBase [D5, IB5.x]
Vosik © (2006-06-28 00:46:00)Написанные пользователем триггеры для системных таблиц InterBase принимает, но
удалять и модифицировать отказывается, считая, что такие операции нарушат
целостность Б.Д. Сообщение при этом такое:
ISC ERROR CODE:335544342
ISC ERROR MESSAGE:
action cancelled by trigger (0) to preserve data integrity
cannot modify or erase a system trigger
Получается, что записывая в таблицу RBD$TRIGGERS новый триггер
( напр. для таблицы RDB$PROCEDURES ) система
не рискует, а удаляя его - рискует нарушить работу Б.Д.
Такой триггер невозможно ни отладить, ни удалить, ни отключить.
Вопрос: как удалить такой триггер?
Sergey13 (2006-06-28 13:52:00) [1]> [5] Vosik (28.06.06 13:49)
ИМХО, после грубого вмешательства в системные данные, грешно грешить на "извращения" сервера.
Vosik (2006-06-28 13:49:00) [2]
> триггер убивается модификацией соотв.сист.таблиц.
В данном случае любые попытки удалить или модифицировать триггер заканчиваютя безрезультатно. InterBase такой триггер принимает, очевидно не опасаясь за целостность Б.Д., а потом запрещает ЛЮБЫЕ действия с ним, включая манипуляции с таблицей триггеров. Вот это да - извращение. При том поле RDB$SYSTEM_FLAG в таблице RDB$TRIGGERS равно NULL .
Johnmen (2006-06-28 09:15:00) [3]
> Vosik (28.06.06 00:46)
> Вопрос: как удалить такой триггер?
Если уж занимаешься такой практической проктологией, то должен знать, что триггер убивается модификацией соотв.сист.таблиц.
DrPass (2006-06-28 02:20:00) [4]Подозреваю, что backup/restore спасет базу от этой ереси
PEAKTOP (2006-06-28 01:00:00) [5]
> Написанные пользователем триггеры для системных таблиц ...
С ума сойти ...
unknown (2006-06-28 00:53:00) [6]
> Vosik (28.06.06 00:46)
> Написанные пользователем триггеры для системных таблиц InterBase
Что за извращения? Зачем нужны такие триггеры?