Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с созданием триггера на AS400 / 4 сообщений из 4, страница 1 из 1
23.05.2008, 09:44
    #35330354
TriggerHelp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггера на AS400
Добрый день! Не могу создать триггер на AS400. Вот код:

Код: plaintext
1.
2.
3.
4.
create trigger as.kntoldtrigger before insert on as.employee
REFERENCING NEW AS mynewrows 
for each row mode db2sql 
begin atomic 
delete from as.employee where id=mynewrows.oldid end

выкидывает следующую ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL State: 0W000
Vendor Code: - 751 
Message: [SQL0751] SQL statement *N not allowed. Cause . . . . . :   The statement *N is not allowed 
in a stored procedure, user-defined function, or trigger. -- Statements not allowed in a trigger program 
are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, and SET RESULT SETS. -- RUNSQLSTM is not 
allowed in a trigger program. -- COMMIT and ROLLBACK are not allowed in a trigger program if the 
trigger program is running in the same activation group as the triggering program.  COMMIT and 
OLLBACK are not allowed in an SQL trigger. -- ALTER TABLE is not allowed in a trigger program when 
commitment control is active. -- Statements not allowed in a stored procedure or user-defined function 
that is running on a remote application server are CONNECT, SET CONNECTION, RELEASE, DISCONNECT, 
COMMIT, ROLLBACK, and SET TRANSACTION. -- Statements not allowed in an SQL BEFORE trigger are 
INSERT, UPDATE, DELETE, ALTER TABLE, COMMENT ON, CREATE, DROP, GRANT, LABEL ON, RENAME, 
REVOKE, REFRESH TABLE, and ALTER PROCEDURE. -- The RETURN statement is not allowed in an SQL 
trigger. -- Statements not allowed in a secondary thread are CREATE TRIGGER, CREATE FUNCTION 
(SQL), CREATE PROCEDURE (SQL), and ALTER PROCEDURE (SQL). Recovery  . . . :   Remove the 
statement *N from your trigger program, user-defined function, or stored procedure. Try the request 
again.


Processing ended because the highlighted statement did not complete successfully

Данный тригер должен удалить запись из таблицы as.employee при инсерте новой записи с условием того что он найдет в as.employee эту запись
...
Рейтинг: 0 / 0
23.05.2008, 10:52
    #35330558
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггера на AS400
В триггерах BEFORE нельзя делать никаких операций с базой данных на запись. Можно только селекты и переустанавливать поля. Проверять значения и возвращать ошибку если что не так.
...
Рейтинг: 0 / 0
23.05.2008, 11:34
    #35330701
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггера на AS400
почему нельзя-то, это же AS/400. по крайней мере на С у меня получалось написать такое в триггере, а как на SQL не знаю.

мне кажется begin atomic нельзя делать.
впрочем это так, предположения.
...
Рейтинг: 0 / 0
23.05.2008, 11:45
    #35330740
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггера на AS400
Добрый день.

Прочитайте тут про before SQL trigger.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с созданием триггера на AS400 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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