kdv, www.ibase.ru, 04.07.2008
Firebird 2.1 как в коде так и в дистрибутиве содержит ряд изменений, которые в некоторых случаях вызывают проблемы с использованием Firebird. Ниже приведен перечень этих проблем и способ их решения.
текст ошибки:
"bad parameters on attach or create database
CHARACTER SER WIN1251 is not defined"
Ответ: такое могло происходить и раньше, если сервер не находил или не мог загрузить библиотеку кодировок fbintl.dll. В Firebird 2.1 эта библиотека не может загрузиться как правило из-за того, что инсталлятор Firebird не смог установить Visual Studio 2005 Runtime. Это, в свою очередь, происходит из-за отсутствия в системе MS Installer 3.0.
Исправить проблему можно двумя способами:
Пытаться исправить проблему копированием файлов msvc*80.dll в system32 на операционных системах Windows XP и выше категорически не рекомендуется, т.к. при этом библиотеки рантайма загружаться не будут. Это также может быть источником проблемы, даже если в системе установлены Windows Installer и VC Runtime.
Также есть отличия между Firebird 2.1.0-2.1.1 и 2.1.2 и выше
Если вы работаете с IBExpert или подобным инструментом, который при открытии БД загружает в свой кэш метаданные БД, то такая ошибка будет возникать сразу при открытии БД.
Эта проблема связана с изменением (коррекцией) хранения метаданных в Firebird 2.1. Если у вас в процедурах, триггерах или других объектах есть комментарии или строковые константы в кодировке win1251, то вам необходимо провести процедуру миграции метаданных. Процедура изложена в этом документе - http://www.ibase.ru/metadata_charset/
Спасибо Дмитрию Гоголю и Владу Хорсуну за замечания и дополнения.