Переход с Yaffil на Firebird 2.0.x

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
Основная проблема при миграции базу с сервера Yaffil на Firebird 2.0.х -- это отсутствие в последнем встроенных функций BIN_AND и BIN_OR, широко используемых в триггерах и хранимых процедурах базы данных Гедымина.
+
Основная проблема при миграции базу с сервера [[Yaffil]] на Firebird 2.0.х -- это отсутствие в последнем встроенных функций BIN_AND и BIN_OR, широко используемых в триггерах и хранимых процедурах базы данных Гедымина.
  
Для перехода в ручном режиме вам понадобится свежая установка сервера [http://firebirdsql.org/index.php?op=files&id=engine Firebird 2.0.x] и утилита IBExpert.
+
Для перехода в ручном режиме вам понадобится свежая установка сервера [http://firebirdsql.org/index.php?op=files&id=engine Firebird 2.0.x] и утилита [http://ibexpert.net/ibe/index.php?n=Main.TrialVersion 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.
 +
 
 +
Запускаем. Проверяем работу.

Версия 17:39, 25 марта 2009

Основная проблема при миграции базу с сервера Yaffil на Firebird 2.0.х -- это отсутствие в последнем встроенных функций BIN_AND и BIN_OR, широко используемых в триггерах и хранимых процедурах базы данных Гедымина.

Для перехода в ручном режиме вам понадобится свежая установка сервера Firebird 2.0.x и утилита IBExpert.

Последовательность действий:

  1. На всякий случай архивируем существующую БД.
  2. Деинсталируем Yaffil. Не забываем сохранить gudf.dll из подкаталога udf основного каталога размещения сервера Yaffil.
  3. Устанавливаем и запускаем сервер Firebird 2.0.5 (последняя доступная версия на момент написания статьи).
  4. Копируем библиотеку gudf.dll в подкаталог udf.
  5. Устанавливаем IBExpert
  6. Подключаемся к существующей базе с помощью IBExpert
  7. Регистрируем внешние функции с помощью команд:
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' 
  1. Не забываем делать COMMIT после каждой команды.
  2. Выполняем команды Перекомпилировать процедуры и Перекомпилировать триггеры.
  3. Если в процессе перекомпиляции позникают ошибки, то вносим исправления в исходный код и повторно запускаем перекомпиляцию.
  4. Делаем архивную копию и восстанавливаем базу из архива.

С сервеной частью все. Остается на клиентских машинах:

  1. Найти все файлы gds32.dll и удалить их.
  2. С сервера, из подкаталога BIN основного каталога сервера Firebird берем gds32.dll и выкладываем рядом с gedemin.exe.

Запускаем. Проверяем работу.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты