Что такое OLE DB Provider?
Для доступа к базам данных в ADO (а теперь эта возможность есть и в ADO.Net) используются OLE DB провайдеры. Ole Db Provider представляет собой драйвер для доступа к базе данных при помощи OLE DB интерфейсов. Для взаимодействия с OLE DB провайдером в .Net реализовано пространство имен System.Data.OleDb.
При работе с Firebird я использую IBProvider (www.ibprovider.com) и в своем повествовании буду опираться, прежде всего, на его функциональность. Разработчики IBProvider поддерживают три коммерческих версии драйвера. Так же есть бесплатная. Для написания примеров применялся IBProvider третьей версии и только для примера управляющих ODBC последовательностей использовался IBProvider v2.
Список основных различий в версиях IBProvider:
Поддержка всей линейки серверов Interbase, Yaffil, Firebird, включая FB2 | да | да | да |
Возможность работы с ADO и соответственно с Microsoft Office, VBA, VBScript, Java Script и др. | да | да | да |
Отсутствие ограничений на размер получаемых данных | да | да | да |
Поддержка ADO.Net | нет | да | да |
Возможность работы в качестве MS SQL Linked Server | нет | да | да |
Работа с метаданными | нет | да | да |
Поддержка обновляемых множеств | нет | нет/да | пока нет |
Поддержка распределенных транзакций | нет | да | да |
Вложенные транзакции | нет | нет | да |
Поддержка управляющих последовательностей ODBC для SQL запросов (используется в Crystal Reports, MS SQL Server, различные OLAP и др. инструменты) | нет | да | пока нет |
Поддержка DDL запросов | да, но без поддержки SQL парсером провайдера | да | да |
Тип закладок | 4 байта | 4 байта/8 байт | 8 байт |
Поддержка Client Cursor Engine | нет | да | да |
Уведомления о завершении транзакции | нет | нет | да |
Предоставление расширенной информации о сервере (версия, тип сервера, размер страницы). | нет | да | да |
Возможность задавать используемую клиентскую библиотеку (gds32.dll или fbclient.dll) | нет | нет | да |
Поддержка изменений в DML (Data Model Language) для Firebird 2 | нет | нет | да |
Новые свойства и алгоритмы Firebird 2 (возможность узнать дату создания базы и т.п.) | нет | нет | да |
Наиболее современным решением является IBProvider третьей версии. В его основе лежит абсолютно новое ядро и в нем реализованы технологии управления данными, которые явились результатом 5-тилетних исследований в данной области, а так же вобрали в себя опыт разработки крупных программных проектов и библиотек доступа к данным. На момент написания статьи в третьей версии не была реализована технология обновляемых множеств, а так же не поддерживались управляющие последовательности ODBC. Но, насколько мне известно, поддержка ODBC Escape Sequences уже планируется разработчиками в ближайших версиях провайдера.