Дата публикации: 19.01.2002

IBProvider v1.6.1.185

  1. Поддержка DBTYPE_NUMERIC.
    • Реализована конвертация между другими типами данных (numeric/string/VARIANT)
    • Типы данных InterBase NUMERIC/DECIMAL теперь представляются как DBTYPE_NUMERIC
  2. Корректное представление TIMESTAMP (IB6) и DATE (IB4/5). Устранено усечение десятых долей миллисекунд. Для этих дат используется DBTYPE_TIMESTAMP.
  3. Приведены к требованиям спецификации значения PRECISION и SCALE в описании колонок и параметров.
  4. Возможность указания всех свойств подключения через значение свойства «Extended Properties».
  5. Новое информационное свойство «Provider Friendly Name».
  6. Новое свойство инициализации и набора рядов «truncate_char». По умолчанию установлено в true.
  7. Новый набор информационной схемы TABLES_INFO.
  8. Устранены недочеты в формировании содержимого информационных схем.

Единственным серьезным изменением является включение поддержки DB_NUMERIC, поскольку с этим связан большой объем кода, связанного с конвертированием. Мы настоятельно рекомендуем самостоятельно проверить достоверность получаемых и передаваемых NUMERIC и DECIMAL типов данных. Несмотря на тщательную проверку и тестирование кода с нашей стороны, вам лучше перестраховаться. Официальные пользователи могут самостоятельно проверить код, поскольку он является общим с С++ клиентом к OLE DB провайдерам.

Использование IBProvider'a как связанного сервера MSSQL.

Начиная с версии 1.6.1, IBProvider может быть использован как поставщик информации для использования в Microsoft Distributed Query. В процессе тестирования были выявлены следующие вещи:

  • При регистрации источника данных желательно разрешать загрузку в процесс сервера («Allow InProcess»). В противном случае провайдер будет запускаться в отдельном процессе. У нас получалось работать таким образом только зарегистрировавшись в системе как администратор;
  • Строка подключения должна выглядеть таким образом: «…;free_threading=true;truncate_char=false;…» Это указывает провайдеру, что он должен объявить о своей поддержке «free threading» и запрещает ему усечение хвостовых пробелов, поскольку MSSQL сверяет полученные данные с описанием колонок. В строке подключения не нужно указывать «auto_commit=true»;
  • Перед выполнением запроса нужно выполнить команду begin transaction Это приводит к тому, что источник данных IBProvider'a будет подключен к координатору распределенных транзакций. В противном случае будет происходить уже всем известная ошибка: «Automatic transaction is disabled»;
  • При работе с базой данных 3 диалекта необходимо правильно указывать верхний и нижний регистр, поскольку MSSQL начинает использовать «» при передаче имен. При подключении к IB4/5 или явном указании «dialect=1» регистр можно игнорировать;
  • Диапазон дат IB и MSSQL не совпадает. Поэтому проверьте, что в таблицах, участвующих в запросах, нет дат ниже 1 января 1753 года;
  • В запросах нельзя использовать таблицы, содержащие массивы. MSSQL их не понимает;
  • Поскольку IBProvider в настоящий момент не реализует поддержку обновляемых множеств, выполнение запросов модификации данных (insert/update/delete) пока невозможно. По крайней мере, у нас выполнять эти операции не получалось

Тестирование осуществлялось на MSSQL 7.0.623.


Дата публикации: 19.01.2002. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.
Предыдущие новости
IBProvider Free v1.5.2
Следующие новости
IBProvider v1.6.2.199