IBProvider v1.7.1
В версии 1.7 мы попробовали реализовать то, что доведено до блеска только сейчас. Начиная с этого момента можно честно сказать, что IBProvider — native компонент доступа, поскольку он обеспечивает поддержку всем типам данных InterBase и при этом базируется на чистом IB API. Два года назад мы преследовали гораздо более прозаические цели :-)
Благодарности
Реализация поддержки UNICODE режима появилась благодаря помощи Antti Nivala и Jose Ramon Rodriguez. Спасибо.
Изменения
- Полностью переписана поддержка UNICODE режима. Теперь поддержка UNICODE_FSS осуществляется непосредственно провайдером. Конвертация кодовых страниц NONE, DOSXXX, WINXXX осуществляется посредством WIN API.
- Полностью переписаны алгоритмы чтения/записи BLOB. Для конвертации данных BLOB поля в UNICODE и обратно использован новый механизм, основанный на поточной обработке данных. Кроме того, добавлена поддержка storage-объектов, содержащих UNICODE-текст. В целом, качество кода, связанного с BLOB полями, поднялось на порядок.
- Восстановлена возможность использования провайдера как связанного сервера MSSQL.
- Обновлена документация, касающаяся свойств инициализации.
Обратите внимание
Теперь, если провайдер не поддерживает кодовую страницу, указанную в «ctype«, то будет происходить ошибка. Если вам необходимо получать текстовые данные как есть, а не конвертированные в UNICODE, укажите в строке инициализации «unicode_mode=false».
Совместимость
В качестве тестирования мы перевели наш проект, под который изначально создавался IBProvider, на базу данных с «DEFAULT CHARACTER SET UNICODE_FSS». База выросла с 965MB до 1,02ГB. А для программного обеспечения (общий объем которого составляет больше 30 MB) потребовалось только указать «ctype=unicode_fss».