Страница 1 из 1

Лог на таблицу

Добавлено: 14 июл 2005, 12:53
tie
Нужно сделать лог таблицу, которая будет отображать все изменения в данных основной таблицы
как жто сделать на сервере?

например:
есть таблица 1 с полями ID_T и F1,F2,F3 ... F100;
таблица 2 с полями ID, D_T, ID_T, FIELD, OLD_VAL, NEW_VAL;

любое добавление/изменение в любой записи любых данных в таблице 1, кроме ID_T, приводит к добавлению в таблицу 2 записи следующего вида:
ID, ID_T, FIELD, OLD_VAL, NEW_VAL;
1, 01.01.2005, 2, F1, null, 140 -- 'это мы добавили 140
...
12345, 10.01.2005, 2, F1, 140, 150 -- это изменили в поле F1 140 на 150

Добавлено: 14 июл 2005, 13:05
Merlin
Кури доку на предмет триггеров.

Добавлено: 14 июл 2005, 17:11
tie
Merlin писал(а):Кури доку на предмет триггеров.
Эт в смысле
if (new.F1<> old.F1) then
execute procedure to_log current_date, new.D_T, 'F1', old.F1, new.F1;
...
if (new.F100<> old.F100) then
execute procedure to_log current_date, new.D_T, 'F100', old.F100, new.F100;

а по красивше?

Добавлено: 14 июл 2005, 17:17
tie
Причем сделать для:
BEFORE INSERT
и
BEFORE UPDATE
??????????????????????????????????????
Неужели я первый кто с этим столкнулся?
неверю.................

Добавлено: 14 июл 2005, 17:59
Merlin
Последний. Все остальные давно написали себе за пару часиков приблуду, генерящую такие или похожие триггера автоматом. А самые ленивые пользуются тем, что прредусмотрено на эту тему в IBExpert.

Добавлено: 15 июл 2005, 01:14
tie
ну чтож
прийдется трясти бубном
коль других (нормальных) способов не придумали.
а я так ждал надеялся и верил...