![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Анализ изменений в триггере [D2005, XP]
Евгений Р. © (2007-08-13 15:08:00)Возможно ли из триггера AFTER UPDATE оценить и при необходимости отменить изменения?
Пытаюсь new.kod=old.kod; - не помогает.
Desdechado (2007-08-13 16:36:00) [1]> вызывается перед началом внесения изменений.
... в таблицу, а не перед манипуляциями на клиенте
Sonia (2007-08-13 16:31:00) [2]
> Before Update аналогично BeforeEdit в tTable и вызывается
> перед началом внесения изменений.
Оно так и вызывается
Евгений Р. (2007-08-13 16:12:00) [3]Спасибо, получилось. Я думал, что Before Update аналогично BeforeEdit в tTable и вызывается перед началом внесения изменений.
Evgeny V (2007-08-13 15:26:00) [4]
> Евгений Р. (13.08.07 15:08)
AFTER UPDATE - замени на BEFORE UPDATE, тогда new.kod=old.kod будет работать или как предлагалось выше
> Desdechado © (13.08.07 15:12) [1] - EXCEPTION
Desdechado (2007-08-13 15:24:00) [5]Как это не знаешь? А сравнить new с old?
Sergey13 (2007-08-13 15:24:00) [6]> [4] Евгений Р. (13.08.07 15:22)
Я думаю, если в твоем вопросе будет больше конкретики - возможно и помощь будет более конкретной.
Что за СУБД, Что за тригер?
Евгений Р. (2007-08-13 15:22:00) [7]Но в Before я не знаю что поменяют, может изменение можно пропустить?
Desdechado (2007-08-13 15:18:00) [8]Sergey13 © (13.08.07 15:15) [2]
Да, слона-то я и не заметил... Назад крутить только в BEFORE смысл имеет.
Sergey13 (2007-08-13 15:15:00) [9]> [0] Евгений Р. (13.08.07 15:08)
В AFTER тригере new.kod=old.kod писать бессмысленно. Поздно. Поезд уже ушел.
Desdechado (2007-08-13 15:12:00) [10]Отменить изменения можно вызовом EXCEPTION.
Если же надо с коммитом, тоnew.kod=old.kod;вполне рабочий код.