Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В тригере Before Update узнать имя измененного field'а


AntiUser ©   (2006-10-08 11:39:00) 

в текстовом виде и получить его значения. Возможно?
Oracle9i

Или статейки на ведение логов. Но надо обязательно полулучить имя фиелда, т.к. таблица ОГРОМНАЯ и логить весь рекорд бесмысленно.


AntiUser   (2006-10-09 18:01:00) [1]

Нашел (точнее подсказали) вот это: http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:59412348055
Полезно, на этой основе сделал то, что нужно.


Petr V. Abramov   (2006-10-09 11:45:00) [2]

может, в сторону logminer глянуть? в логах-то уж ВСЕ ходы записаны


Sergey13   (2006-10-09 11:03:00) [3]

> [0] AntiUser ©   (08.10.06 11:39)
> Но надо обязательно полулучить
> имя фиелда, т.к. таблица ОГРОМНАЯ и логить весь рекорд бесмысленно.

Надо сначала решить, что ты будешь делать с этим логом. В 99% случаев, ИМХО, детальный лог - это бессмысленная нагрузка на систему.


Desdechado   (2006-10-09 10:53:00) [4]

> А это имеет значение в before-триггере ?
Конечно. Если будет NULL, то СУБД все равно не пропустит.

Кстати, протоколирование обычно делают в after-триггерах.

Да, и протоколировать одно поле часто бессмысленно, ибо оно может быть значимым только в связке с другими полями.


Fay   (2006-10-09 02:10:00) [5]

2 Desdechado ©   (08.10.06 21:45) [3]
> мое fld1 NOT NULL :))
А это имеет значение в before-триггере ?


Desdechado   (2006-10-08 21:45:00) [6]

> С null сравнивать нехорошо
А где я с ним сравнивал?
мое fld1 NOT NULL :))


Fay   (2006-10-08 21:17:00) [7]

2 Desdechado ©   (08.10.06 18:17) [1]

С null сравнивать нехорошо.


Desdechado   (2006-10-08 18:17:00) [8]

IF( :new.fld1 <> :old.fld1 ) THEN    -- поле fld1 было изменено


Наверх

Титульная страница Поиск, карта сайта Написать письмо