Измена с IB9.0.3 / IB10 — BASE64
Сегодня с утра дожал изменения связанные с переездом на VS2010 и после этого запустил базовые тесты для Interbase 9.0.3 / Firebird 2.5 / Yaffil. С IB меня ждал сюрприз.
При получении списка всех колонок базы данных, провайдер возвращает такую коллекцию ошибок:
1. «DBCHEMA_COLUMNS: Ошибка при формировании сведений для [RDB$ENCRYPTIONS][RDB$ENCRYPTION_VALUE]»
2. «Неизвестное имя кодовой страницы [BASE64]»
Полез в системные таблицы. Колонки
1. RDB$ENCRYPTIONS::RDB$ENCRYPTION_VALUE
2. RDB$ENCRYPTIONS::RDB$ENCRYPTION_SALT
3. RDB$ENCRYPTIONS::RDB$ENCRYPTION_PASSWORD2
переведены на новую кодовую страницу — BASE64
В Interbase 9.0.0 эти колонки имеют кодовую страницу NONE
В последнем IB (v10) — BASE64
В документациях IB9.0.3/IB10 — про BASE64 ни слова.
—
Если вы используете IBProvider с IB9.0.3/IB10 — укажите в строке подключения «schema_cache=0». Это изменит режим загрузки метаданных и провайдер не будет грузить описания колонок таблицы RDB$ENCRYPTIONS.
—
Мне бы пора бы уже философски относится к таким изменениям (оно же все к лучшему), но почему то все равно тянет грязно выругаться. Пожалуй не буду себя сдерживать — дабы не отравлять свой организм этими не высказанными словами.
Про Interbase и текстовые блобы | Блог разработчика IBProvider | Инновации для Firebird и Interbase on 20 ноября, 2010
[…] поддержку BASE64, о которой я написал в предыдущем сообщении, я начал писать тесты для этой кодовой […]