Дата публикации: 13.12.2001
IBProvider v1.6
Используемый компилятор
Модуль _IBProvider.dll откомпилирован «Free Borland C++ Compiler». Импорт функций gds32.dll осуществляется по именам. При этом оставлена совместимость с клиентской частью от IB4.
Исправленные ошибки
- В случае NUMERIC/DECIMAL колонок результирующего множества возвращался неправильный размер типа DBTYPE_R8.
- Более корректная проверка имен типов, передаваемых в ICommandWithParameters::SetParameterInfo. Раньше можно было передавать например такое имя «DOUBLEPRECISIO N».
Изменения
- Новый базовый адрес загрузки _IBProvider.dll 0x45E00000. Благодаря линковщику от BCB5, таблица переназначений сохранена.
- Плавающая конвертация INT64 в VARIANT. Могут использоваться типы VT_I4/VT_R8. Ранее использовался только VT_R8.
Новая функциональность
- Реализация IDBInfo.
- Реализована специализированная поддержка запросов «select * from table». В этом случае провайдер определит имя таблицы и предоставит в columns rowset информацию о колонках первичного ключа. Честно говоря, очень не хватает собственного полноценного разборщика SQL запросов.
- Реализована поддержка VARIANT типов VT_I1, VT_UI2, VT_UI4, VT_INT, VT_UINT.
- Отказоустойчивость. Одним из потенциально уязвимых мест OLE DB является буфер обмена данными. Принимая во внимание разнообразие типов и способов передачи данных, необходима гарантия корректной обработки буфера. В текущей версии был реализован новый подход принудительного обхода всех элементов буфера, что при корректной работе клиента OLE DB провайдера гарантирует отказоустойчивость при любых динамических ошибках (например, распределения памяти).
- Реализована поддержка выполнения «ROLLBACK RETAIN» через OLE DB интерфейсы.
Новые свойства набора «Data Source Information»
- Provider Version
- Read-Only Data Source
- Provider Owned Memory
- ORDER BY Columns in Select List
- GROUP BY Support
- Maximum Row Size
- Maximum Row Size Includes BLOB
- Maximum Index Size
- Maximum Tables in SELECT
- Identifier Case Sensitivity
- Quoted Identifier Sensitivity
- Rowset Conversions on Command
- Subquery Support
- Isolation Retention
- IB Base Level
- IB GDS32 Version
- IB Version
- IB Database Dialect
- IB ODS Version
- IB ODS Minor Version
- IB Remote Connection
- IB Database Page Size
Наборы схем
- 25 наборов. Это все основные и множество вспомогательных.
- Тестировалось на IB4, IB5, FB 0.9.4 и IB 6.2.641. Думаем, будет работать и на IB6.5
- Поддержка ограничений.
- Сортировка содержимого согласно стандарту.
- Возможность управления режимом кэширования метаданных. Смотрите новые свойства «schema_cache» и «Session Schema Cache«.
- Секционная блокировка кэша метаданных обеспечивает хорошую производительность многопоточных приложений.
- Возможность запрещения неявных транзакций для выполнения запросов получения метаданных. Смотрите свойства «inner_trans» и «Session InnerTrans«. В случае, если пользователь явно начал транзакцию, то именно она будет использоваться для получения метаданных. В случае старта неявной транзакции будет использоваться уровень изоляции указанный в «Autocommit Isolation Levels«.
-
Некоторые наборы были расширены, чтобы предоставлять более
осмысленную информацию, в частности:
- DBSCHEMA_REFERENCIAL_CONSTRANTS
- DBSCHEMA_TABLE_PRIVILEGES
- DBSCHEMA_COLUMN_PRIVILEGES
- Возвращаемые наборы поддерживают IColumnsRowset
- Интенсивное использование внутреннего пула объектов минимизирует затраты при повторном создании наборов.
Дата публикации: 13.12.2001. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.