Для настройки логирования любых изменений в БД Абонемент используется утилита IBHistory.
|
Рис.1 Внешний вид утилиты IBHistory |
Описание интерфейса
Внешний вид окна утилиты представлен на рис.1.
Кнопки:
Сохранить конфигурацию базы
Служит для внесения изменений в базу данных по завершению настройки логируемых полей
Загрузить конфигурацию из cfg-файла
Необходима для загрузки ранее сохраненной конфигурации
Сохранить конфигурацию в cfg-файле
Используется для сохранения текущих настроек, для дальнейшего экспорта.
Обновить (перезагрузить из базы)
Назначение не нуждается в комментариях.
В интерфейс так же имеются две таблицы, в которых перечислены все имеющиеся в выбранной БД таблицы в левой части, и их поля в правой.
В левой таблице имеется колонка «Включить лог», при установке флажка в которой будет включено логирование таблицы.
Рядом с ней расположена колонка «Показывать все», включение флага в которой приведет к включению логирования всех полей этой таблицы.
Если в этом нет необходимости, то нужно в правой части в колонке «Показывать» выбрать какие конкретно поля включить в список логируемых.
|
Рис.2 Внешний вид утилиты IBHistory в процессе настройки |
Колонка «название для отображения» служит для определения названия в колонке «параметр истории изменений» при просмотре истории.
В колонке «SQL-запрос для подмены» можно добавить sql-запросы, для преобразования значений, выводимых в лог в легко читаемом виде.
Например, при изменении скидки на абонемент (поле DISCOUNTID таблицы PACKAGE_KINDS) в полях старое и новое значение отобразятся ID скидки, не имеющие ничего общего с ее реальным размером.
Если же добавить в подмену запрос:
select name from discounts where id=:param
То результатом будет не ID, а наименование скидки, что гораздо удобнее.
:param – переменная, которой присваивается изначальное значение (в данном примере ей присвоился DISCOUNTID)
Настройка логирования
Алгоритм настройки следующий:
- В файле ibhistory.ini указать путь к базе.
- Выставить флаги на таблицах, которые требуется логировать и их полях. Настроить названия для отображения, и при необходимости sql-запросы для подмены.
- Если имеется готовый конфигурационный файл, то нажать кнопку "загрузить конфигурацию из cfg-файла" и выбрать его.
- После завершения настройки нужно нажать кнопку "сохранить конфигурацию базы" и дождаться сообщения об успешном сохранении конфигурации.
С этого момента будет вестись логирование выбранных полей.
Просмотр лога
Есть несколько вариантов просмотра лога.
Он ведется в таблице SYS$LOG. Таким образом, первый вариант – смотреть изменения в IBExpert. Конечно, он не годится для обычного пользователя.
Второй вариант – кнопка «История изменений» в Абонементе.
|
Рис.3 Кнопка "Показать историю изменений" в интерфейсе основного модуля Абонемент |
ВАЖНО
История отображается только для выбранного объекта (т.е выбрав, например, тип абонемента, и нажав на кнопку "Показать историю изменений" мы видим только его историю, не других).
|
Рис.4 Просмотр лога изменений, на примере изменения названия объекта в общих параметрах |
К сведению
К сожалению подробного описания соответствия таблиц и полей их назначения в Абонемент нет. Большая часть таблиц минимально описаны в данной вики.
Не рекомендуется включать логирование частоизменяемых таблиц (например: ACCESS_CONTROL_LOG), поскульку логирование изменения данных таблиц приведёт к увеличению скорости роста БД.



