В начало
Логирование изменений товараЕсть пресловутая база «Sklad», созданная в СУБД «Interbase 6.5». В этой базе есть таблица «Tovar», в которой перечислены позиции товара. Необходимо организовать логирование изменений в таблице «Tovar» посредством триггеров. Для начала нужно создать
вспомогательную таблицу «Tovar_Log», в которую будут
заноситься все изменения по таблице «Tovar». Запускаем «IBConsole», в ней выбираем «Interactive SQL», в верхнюю часть окна пишем запрос
и жмем кнопку на выполнение.
Все, таблица для логирования готова. Рис. 1. Свежеиспеченна таблица «Tovar_Log» Далее
создаем триггеры, которые будут записывать все происходящие с таблицей «Tovar» изменения. Сначала
пишем триггер на добавление нового товара в таблицу «Tovar».
Рис. 2. Таблицы «Tovar» и «Tovar_Log» при добавлении товара В таблицу «Tovar_Log» при добавлении товара «Иммунал» была сделана одна запись, в которой есть дата изменения, вид действия и название нового товара. Затем пишем код для триггера на
изменение записей в таблице «Tovar».
Выполняем его.
Потом
производим изменения над записью «Виагра», а именно,
добавляем в запись дозировку препарата.
Рис. 3. Таблицы «Tovar» и «Tovar_Log» при изменении товара Как видно из рисунка 3, автоматически была внесена запись в таблицу «Tovar_Log», из которой можно понять что и когда произошло с товаром «Виагра». Далее пишем код для триггера
реагирующего на удаление товара из таблицы «Tovar».
Для
проверки триггера «Tovar_Log_Delete» удаляем запись «Циалис» из таблицы «Tovar» и смотрим, что нам триггеры понаписали в таблицу «Tovar_Log». Рис. 4. Таблица «Tovar_Log» после удаления записи Как видно из рисунка 4, в таблице «Tovar_Log» появилась запись, что над товаром «Циалис» провели действие удаления «DEL». Таким
образом, с помощью трех триггеров было реализовано логирование
изменений таблицы «Tovar».
По хорошему, в таблицу «Tovar_Log» еще надо вписывать лицо,
которое производило изменения, так чтобы было кому
потом откручивать яйца, если что. |
| |||||