Новые возможности для умной работы с текстовыми BLOB в Firebird и InterBase для ваших программ и компонентов
Вы знали, что OLE DB .Net provider от Microsoft, а так же ряд других специализированных .Net компонент для доступа к BLOB-полям Firebird и InterBase не используют потоковое чтение, а сразу загружают весь BLOB-объект в память?
Что будет с памятью сервера, если в такой компонент попадет таблица с тысячей больших картинок или, что еще хуже видеофайлов? Конечно, они все будут загружены в память!
Но только не с IBProvider
IBProvider уже давно использует потоки и загружает данные по мере необходимости. То есть вы получаете не весь BLOB-объект сразу при обращении к записи, а только ту информацию, которую сами запросили.
Как вы знаете, мы ведем активную разработку .Net Provider-а для доступа к Firebird и InterBase и в сегодняшнем релизе IBProvider мы реализовали внешние интерфейсы для работы с потоками символов.
Теперь любые компоненты, которые используют IBProvider могут работать с BLOB-объектами как с потоками символов WideChar/MultiByte.
Для этих целей определены 2 специализированных интерфейса:
- IIBP_SequentialStream_WideChar
- IIBP_SequentialStream_MultiByteChar
Описание интерфейсов находится в файле «lib\ole_lib\oledb\ibprovider\oledb_ibprovider.h».
Обратите внимание на использование типа данных SIZE_T вместо ULONG — это сделано для прозрачной поддержки 32х и 64х битных приложений.
Новые интерфейсы закрывают пробел в стандарте OLE DB, в котором определен только один путь получения данных в виде потока — через объекты с интерфейсом ISequentialStream, который ориентирован на бинарные данные.
В следующих релизах, этот способ доступа к данным будет задействован в «LCPI .NET Data Provider for OLEDB» в реализациях продвинутых конструкций и алгоритмов для чтения-записи текстовых BLOB-ов.
Если вы работаете с провайдером напрямую через его интерфейсы или можете влиять на формирование DBBINDING::pObject, то вы можете воспользоваться новым способом доступа к данным уже сейчас.
Каждый релиз – новые алгоритмы
Уверены, что нет необходимости детально расписывать те десятки алгоритмов и функций, которые перерабатываются и оптимизируются каждый раз при выпуске новой версии.
Любая версия IBProvider это:
- Многоуровневое тестирование
- Исправление выявленных и потенциальных(!) ошибок
- Оптимизация работы алгоритмов
IBProvider сегодня перестает быть только OLE DB провайдером
Мы постоянно анализируем текущие и потенциальные возможности IBProvider-а. И в настоящий момент достигли уровня, когда, в случае необходимости, будем перешагивать рамки стандарта OLE DB, чтобы предоставить нашим пользователям лучшие сервисы для взаимодействия с базами данных Firebird и InterBase.
.Net Provider – это только начало, поэтому выбирая IBProvider в качестве компонента для доступа к любым (!) версиям InterBase и Firebird, вы гарантируете себе легкий и безболезненный переход:
- На новые версии серверов InterBase и Firebird
- Между серверами InterBase, Firebird
- На новые технологии и среды программирования