Delphi 3 и создание приложений баз данных


29.5. Ведение журнала изменений


Журнал изменений в БД представляет собой таблицу БД, в которой фиксируются действия над всей базой данных или отдельными ее таблицами. В многопользовательских системах ведение такого журнала позволяет определить источник недостоверных или искаженных данных.

Пример.

Определим в базе данных таблицу TOVARY_LOG

CREATE TABLE TOVARYJLOG(

DAT_IZM DATE, /* дата изменения */

DEISTV CHAR(3), /* операция */

OLD_TOVAR VARCHAR(20), /* старое значение TOVAR*/

NEW_TOVAR VARCHAR(20) /* новое значение TOVAR */

) ;

в которую будем автоматически записывать любые изменения, добавления, удаления в таблице ТО VARY. При этом будем фиксировать дату, операцию (INS, UPD, DEL) над таблицей TOVARY, а также старое и новое значение столбца TOVAR. Для операции удаления новое значение столбца TOVAR будет пустым. Для операции добавления пустым будет старое значение столбца TOVAR.

CREATE TRIGGER TOVARY_ADD_LOG FOR TOVARY

ACTIVE

AFTER INSERT

AS

BEGIN

INSERT INTO TOVARY_LOG(DAT_IZM, DEISTV, OLD_T,OVAR, NEW_TOVAR)

VALUES ("NOW","ADD","",NEW.TOVAR) ;

END

CREATE TRIGGER TOVARY_UPD_LOG FOR TOVARY

ACTIVE

AFTER UPDATE

AS

BEGIN

INSERT INTO TOVARY_LOG(DAT_IZM, DEISTV, OLD_TOVAR,

NEW_TOVAR)

VALUES ("NOW","UPD",OLD.TOVAR,NEW.TOVAR) ;

END

CREATE TRIGGER TOVARY_DEL_LOG FOR TOVARY

ACTIVE

AFTER UPDATE

AS

BEGIN

INSERT INTO TOVARY_LOG(DAT_IZM, DEISTV, OLD_TOVAR, NEW_TOVAR)

VALUES ("NOW","DEL",OLD.TOVAR,"");

END

Пусть в таблицу TOVARY внесены некоторые изменения. Тогда, выполнив оператор

SELECT * FROM TOVARY_LOG;

получим историю изменений в таблице TOVARY:

DAT_IZM DEISTV OLD_TOVAR NEW_TOVAR

30-JUN-1997 ADD оГУРЦЫ

30-JUN-1997 UPD оГУРЦЫ Огурцы

30-JUN-1997 DEL оГУРЦЫ




Начало  Назад  Вперед



Книжный магазин