Переход с Yaffil на Firebird 2.0.x
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 23: | Строка 23: | ||
ENTRY_POINT 'IB_UDF_bin_or' MODULE_NAME 'ib_udf' | ENTRY_POINT 'IB_UDF_bin_or' MODULE_NAME 'ib_udf' | ||
| − | # | + | # Не забываем делать COMMIT после каждой команды. |
# Выполняем команды Перекомпилировать процедуры и Перекомпилировать триггеры. | # Выполняем команды Перекомпилировать процедуры и Перекомпилировать триггеры. | ||
# Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код и повторно запускаем перекомпиляцию. | # Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код и повторно запускаем перекомпиляцию. | ||
Версия 17:43, 25 марта 2009
Основная проблема при миграции базу с сервера Yaffil на Firebird 2.0.х -- это отсутствие в последнем встроенных функций BIN_AND и BIN_OR, широко используемых в триггерах и хранимых процедурах базы данных Гедымина.
Для перехода в ручном режиме вам понадобится свежая установка сервера Firebird 2.0.x и утилита IBExpert.
Последовательность действий:
- На всякий случай архивируем существующую БД.
- Деинсталируем Yaffil. Не забываем сохранить gudf.dll из подкаталога udf основного каталога размещения сервера Yaffil.
- Устанавливаем и запускаем сервер Firebird 2.0.5 (последняя доступная версия на момент написания статьи).
- Копируем библиотеку gudf.dll в подкаталог udf.
- Устанавливаем IBExpert
- Подключаемся к существующей базе с помощью IBExpert
- Регистрируем внешние функции с помощью команд:
DECLARE EXTERNAL FUNCTION bin_and INTEGER, INTEGER RETURNS INTEGER BY VALUE ENTRY_POINT 'IB_UDF_bin_and' MODULE_NAME 'ib_udf'
DECLARE EXTERNAL FUNCTION bin_or INTEGER, INTEGER RETURNS INTEGER BY VALUE ENTRY_POINT 'IB_UDF_bin_or' MODULE_NAME 'ib_udf'
- Не забываем делать COMMIT после каждой команды.
- Выполняем команды Перекомпилировать процедуры и Перекомпилировать триггеры.
- Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код и повторно запускаем перекомпиляцию.
- Делаем архивную копию и восстанавливаем базу из архива.
С сервеной частью все. Остается на клиентских машинах:
- Найти все файлы gds32.dll и удалить их.
- С сервера, из подкаталога BIN основного каталога сервера Firebird берем gds32.dll и выкладываем рядом с gedemin.exe.
Запускаем. Проверяем работу.