powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Внешние данные в тригере
9 сообщений из 9, страница 1 из 1
Внешние данные в тригере
    #35900951
askfinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В приложении используется своя система авторизации (данные о пользователе хранятся в таблице БД - крайне не хочется заводить кучу учетный записей в на сервере Win и в DB2) и нужно отслеживать пользователь с каким логином изменил данные и записывать историю. Хотелось бы эту задачу решить именно триггером, но как передать ему этот логин из прикладной программы (особенно триггеру BEFORE/AFTER DELETE, с вставкой/обновлением пока проблем нет т.к. при изменении нужно указать поле NOT NULL с логином)? Есть ли в DB2 некий аналог глобальной переменной сессии к которой можно получить доступ из триггера? Или подобное решается только через ХП?
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35901027
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия db2 какая?
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35901057
askfinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

v.9.1.2 Express-C (for Win)
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35901257
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askfinderv.9.1.2 Express-C (for Win)Тогда самый простой способ - использовать временную таблицу из 1 строки, которую будет заполнять параметрами приложение, и процедуру, которая будет возвращать нужный параметр.
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35901892
askfinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

Если я правильно понял - то триггером никак (вроде как он не имеет доступа к временной таблице)? Или все-таки можно путем вызова из триггера ХП получить данные временной таблицы?
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35904575
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пытался обмануть компиллятор (см ниже) , но у меня тоже не получилось.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create trigger схема.tgr_test
AFTER INSERT ON  схема.test
REFERENCING NEW AS NEWROW 
FOR EACH ROW MODE DB2SQL BEGIN ATOMIC 
     if ( 1 = 2 ) then
          DECLARE GLOBAL TEMPORARY TABLE SESSION.temp (i int)
          NOT LOGGED;
     end if;
end


В процедурах, такой трюк проходит, а вот с триггером никак.

Действительно интересно, как подсунуть триггеру данные извне?

Заранее спасибо!
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35905015
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
askfinderMark Barinstein,

Если я правильно понял - то триггером никак (вроде как он не имеет доступа к временной таблице)? Или все-таки можно путем вызова из триггера ХП получить данные временной таблицы?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare global temporary table session.my_pars(p1 varchar( 128 ), ...) 
with replace on commit preserve rows@
insert into session.my_pars (p1, ...) values ('value1', ...)@

create procedure get_par1(out pout1 varchar( 128 ))
reads sql data
begin
  select p1 into pout1 from session.my_pars fetch first  1  row;
end@

create table test(v varchar( 128 ), ...)@

create trigger test_bir 
before insert on test
referencing new as n
for each row
begin atomic
  call get_par1(n.v);
  ...
end@
Создание временной таблицы и её заполнение параметрами производит приложение.
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35905220
askfinder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,
Спасибо.
...
Рейтинг: 0 / 0
Внешние данные в тригере
    #35907048
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, спасибо!
Я не догадался спрятать временную таблицу в процедуру :-)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Внешние данные в тригере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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