powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в хранимой процедуре отключить триггер?
8 сообщений из 8, страница 1 из 1
Можно ли в хранимой процедуре отключить триггер?
    #32120206
cep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cep
Гость
У меня Interbase 6.5. Хочу сделать хранимую процедуру, которая отключала бы триггер, а потом включала его. Но похоже, что в процедуре слово Alter не понимается. Вроде бы должно быть какое/никакое решение!
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32120337
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IB вроде как нельзя изменять структуру БД из триггеров и процедур.
>Вроде бы должно быть какое/никакое решение!
Есть - изменение системных таблиц. Но возможность не документированая, а потому не безопасная.
Такие вещи делать лучше на клиенте
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32121548
Hi!

Интересный вопрос.
Ответ - нет, нельзя.
Во-первых, в хранимых процедурах не понмиается DDL,
во-вторых, после изменения состояния триггера необходимо переконнектиться, чтобы сбросить кэш метаданных.

Про системные таблицы - лучше не пробуй :)

WBR,
Alexey
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32123526
Фотография Bol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для управления триггерами из приложения поступил просто: добавил таблицу
CREATE TABLE T_VKLTRIGGER (
N_VKLTRIGGER FIRST,
VKLTRIGGER CHAR(1),
OPISANIE CHAR(100))
а в триггрере, управляемом из приложения (что можно сделать и в процедуре)поставил условие: например

CREATE TRIGGER T_TOVAROUT_GEN FOR T_TOVAROUT BEFORE INSERT POSITION 0 AS
.....
....
DECLARE VARIABLE TMPVKLTRIGGER CHAR(1);
begin
.........................................................
select VKLTRIGGER from T_VKLTRIGGER where N_VKLTRIGGER=1 into :TMPVKLTRIGGER;
...
...
...
if (:TMPVKLTRIGGER=1) then
BEGIN
...
...
END
end;

Управляя значением TMPVKLTRIGGER из доп таблицы можно отключить хоть весь триггер, хоть его часть.
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32125018
Фотография Bol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть из процедуры можно делать тоже самоё
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32126326
cep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cep
Гость
Спасибо за идею . На безрыбье, конечно, и рак рыба...
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32126450
mad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2: Алексей Ковязин

в каком смысле "не поминается DDL в процедурах"?
Это чтож, я не могу таблицу создать из хранимой процедуры?
...
Рейтинг: 0 / 0
Можно ли в хранимой процедуре отключить триггер?
    #32127097
cep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cep
Гость
А ты попробуй...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Можно ли в хранимой процедуре отключить триггер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]