IBProvider v3.37. Сервисное обновление. Улучшена обработка ошибок
В новом выпуске мы продолжили ревизию и улучшение существующей кодовой базы нашего OLE DB провайдера. Было проверено и модифицировано достаточно много файлов, чтобы в очередной раз попросить разработчиков «Araxis Merge Professional» улучшить их продукт 🙂
Кроме того, добавлена новое свойство инициализации для минимизации сообщений об ошибках, возвращаемых провайдером.
Изменения
- Удалено свойство инициализации «free_threading». Это свойство было добавлено для обхода проблем в реализации провайдера, которые были исправлены много лет назад.
- Добавлена проверка поля DBPROP::colid. Оно должно содержать значение DB_NULLID. В противном случае, провайдер вернет статус DBPROPSTATUS_BADCOLUMN.
- Добавлен контроль устанавливаемых значений большинства существующих OLE DB свойств инициализации и набора рядов (команд).
- По умолчанию или если в строке подключения указано «dbclient_type=ib», 64-битный IBProvider будет работать с «ibclient64.dll». Вы можете указать другую DLL, изменив свойство инициализации «dbclient_library».
- Провайдер больше не удаляет начальные и конечные пробелы значения свойства «temp_file_dir».
- В отладочной сборке добавлено большое количество новых проверок внутреннего состояния провайдера. Отладочные сборки находятся в «IBProvider Developer Pack», доступном для всех пользователей «IBProvider Professional Edition».
Улучшена обработка ошибок
Добавлено новое свойство инициализации для минимизации количества сообщений в описании ошибок – «provider_error_rules».
По умолчанию провайдер возвращает максимально подробный набор сообщений, который позволяет выяснить причину возникновения ошибки.
Однако при работе с провайдером в качестве связанного сервера MSSQL это не всегда удобно – функция error_message возвращает только последнее сообщение об ошибке.
Указав в строке подключения «provider_error_rules=0», вы заставите провайдер исключить информационные сообщения из описания ошибки. После этого, в большинстве случаев, ошибка будет содержать только одно сообщение от сервера (Firebird/InterBase).
Тестирование
В настоящее время основной платформой для тестирования является FB3/Win10.