Keywords: OLE DB провайдер, Firebird ODBC драйвер, InterBase ODBC драйвер, работа с Firebird, InterBase; доступ, подключение к Firebird, InterBase; ADO .Net, ADO, DAO, ibprovider, gemini, easysoft
Введение
Часто приходится слышать о том, что многие не понимают различия между технологиями ODBC и OLE DB.
Иногда между ними даже ставят знак равенства. В статье рассматривается сходство этих технологий и их различие.
На примере баз данных Firebird и InterBase даны рекомендации, которые помогут вам при выборе средства доступа.
Преимущества использования стандартных интерфейсов
Обе технологии разрабатываются компанией Microsoft.
Основное их предназначение — это изолировать клиента от особенностей реализации источника данных,
предоставив ему стандартный интерфейс доступа.
Можно выделить следующие преимущества такого подхода:
Независимость клиентского приложения от деталей реализации источника данных.
Легкий переход между версиями серверов баз данных.
Возможность работы приложения с несколькими серверами баз данных.
Поддержка со стороны большого числа средств разработки.
Идея состоит в том, что разработчикам легче реализовать один стандартный интерфейс,
чем поддерживать множество базы данных с различным API.
Что такое ODBC драйвер?
ODBC — Open Database Connectivity («Открытый интерфейс взаимодействия с базой данных»)
ODBC драйвера были одной из первых попыток Microsoft стандартизировать механизмы доступа к данным.
ODBC драйвер представлял собой реализацию ODBC API на языке C. Вызовы ODBC API транслировались на API конкретной базы данных.
Достоинство технологии — это её кросс-платформенность.
Сторонняя разработка unixODBC позволяет использовать ODBC драйвера на Unix.
Источники данных ODBC
Всю информацию об источниках данных и ODBC драйверах Windows хранит в реестре.
Обращение к БД происходит по имени зарегистрированного источника данных DSN (Data Source Name),
Таким образом, перед использованием источник данных необходимо зарегистрировать на компьютере пользователя.
Зарегистрировать новое подключение можно через «Администратор источника данных» (Control Panel->Administration->Источники данных ODBC).
Альтернатива ODBC — OLE DB провайдер.
OLE DB (или OLEDB) — Object Linking and Embedding, Database.
Технология OLE DB появилась позже ODBC и стала развитием идей корпорации Microsoft о стандартных интерфейсах доступа к данным.
OLE DB, в отличие от ODBC, является объектно-ориентированным API, основанным на COM-интерфейсах.
OLE DB провайдеры могут работать не только с реляционными базами данных,
но и с любой другой информацией которую можно представить в табличном виде.
Например: OLE DB провайдер для служб каталогов или Jet OLE DB провайдер, позволяющий извлекать данные из Excel и Outlook.
Справка:
В OLE DB можно работать и с ODBC драйвером при помощи специального провайдера
(OLE DB Provider for ODBC drivers), который умеет подключаться к источникам данных ODBC.
Данная схема помогала в случае отсутствия OLE DB провайдера для конкретной базы данных.
На сегодняшний день поддержка этого драйвера прекращена.
Источники данных OLE DB
Для подключения через OLE DB не требуется регистрация источника данных в системе, как это принято в ODBC.
Вся информация хранится либо в файлах с расширением udl, либо указывается непосредственно в строке подключения.
Для редактирования подключения OLE DB с расширением udl ассоциирован редактор связей с данными Data Link.
Он поддерживает расширенную настройку провайдера данных за счет включения в свой интерфейс дополнительных страниц,
о которых ему сообщает выбранный OLE DB провайдер.
Чтобы запустить редактор Data Link создайте пустой файл с расширением udl и запустите его на выполнение.
Развитие языка SQL сделало его реализации в различных базах данных несовместимыми между собой.
Для решения проблемы совместимости были предложены управляющие последовательности ODBC (ODBC Escape Sequences).
Они позволили писать SQL запросы, которые были бы совместимы с большинством баз данных.
Поддержка управляющих ODBC последовательностей есть во многих базах данных. Для Firebird и InterBase технология
ODBC Driver Escape Sequences
доступна через IBProvider — OLE DB провайдер для Firebird и InterBase.
ADO и DAO
DAO — это Data Access Objects (объекты доступа к данным).
Библиотека позволяла работать с базами данных через ODBC драйвера. Разработка технологии прекращена в 2001 году.
ADO — ActiveX Data Objects (ActiveX-объекты для доступа к данным).
Библиотека для работы с OLE DB провайдерами. Приобрела большую популярность среди разработчиков Windows-приложений,
т.к. обладает более простым высокоуровневым интерфейсом чем OLE DB.
Компоненты ADO спроектированы достаточно хорошо, по многим возможностям даже превосходят более новую технологию ADO .Net.
К примеру, в ADO .Net отсутствует возможность Fetch Backwards для курсоров, нет стандартного способа прочитать и записать свойства
OLE DB, не реализована поддержка параллельных транзакций в одном подключении.
Библиотека ADO поддерживается следующими средствами:
в Visual Studio: Visual C++ и Visual Basic;
Microsoft Office, Visual Basic For Applications.
Скриптовые языки VBcript, JavaScript, WSH
Остальные, поддерживающие COM.
И ADO и DAO входят в состав MDAC — Microsoft Data Access Components.
Интеграция с Microsoft Office
Средства Microsoft Office поддерживают загрузку данных и через OLE DB и через ODBC.
Полноценное использование всех офисных средств управления данными зависит от возможностей конкретных OLE DB провайдеров и ODBC драйверов.
Для пользователей Firebird и InterBase такая поддержка есть.
.Net Framework
Все больше разработчиков выбирают среду .Net Framework для новых проектов.
Для OLE DB и ODBC в ADO .Net реализованы соответствующие .Net провайдеры:
SQL Server позволяет обращаться из Transact SQL к базам данных других серверов,
включая Firebird и InterBase через технологию Linked Server.
Linked Server взаимодействует только с OLE DB провайдерами и не поддерживает ODBC дравейра.
Для того чтобы испольовать ODBC драйвер, необходимо подключать дополнительный слой — OLE DB провайдер для ODBC драйверов
и организовывать подключение типа Firebird/InterBase -> ODBC -> OLEDB ->MS SQL Linked Server. Данная
схема будет не совсем эффективной и скорее является временным решением, чем постоянным.
Microsoft в своих решениях постепенно отказывается от поддержки стандарта ODBC, предлагая взамен OLE DB и ADO .Net провайдеры.
Business Intelligence
В состав SQL Server входят три средства Business Intelligence:
Integration Services (SSIS) — визуальное средство для переноса данных.
Analysis Services (SSAS) — OLAP система.
Reporting Services (SSRS) — позволяет разрабатывать отчетные системы.
Они позволяют работать с OLE DB и .Net провайдерами, но не имеют полноценной поддержки ODBC.
ODBC Firebird, ODBC InterBase или все же OLE DB?
ODBC драйвера
Gemini InterBase/Firebird ODBC Driver — проект не поддерживается с марта 2005 года. Сайт: http://www.ibdatabase.com/
ODBC драйвера Easysoft распространяются отдельно для Firebird и отдельно для InterBase:
Easysoft ODBC-InterBase Driver — заявлено о поддержке InterBase 6. IB 6.5 IB 7 и IB 7.5.
Страница компонента.
Easysoft ODBC-Firebird Driver — заявлено о поддержке Firebird 1 и FB 1.5.
Страница компонента.
На сайте Easysoft достаточно внушительный список ODBC драйверов,
но нет информации о дате последних обновлений драйверов для Firebird и InterBase.
Судя по номерам поддерживаемых версий, изменения происходили достаточно давно.
Для того чтобы скачать эти драйвера, необходимо зарегистрироваться на сайте EasySoft.
OLE DB
IBProvider Professional Edition — поддерживает 19 InterBase и Firebird, включая InterBase XE7 и Firebird 3.0,
и автоматически настраивается на работу с каждым из них. Самостоятельно определяет ключевые слова, подключает оптимизирующие алгоритмы, набор метаданных, парсер SQL и ODBC и т.д.
В состав решения входят 2 OLE DB провайдера.
Подробнее о назначении каждого читайте здесь
На мой взгляд, выбор технологии доступа для Firebird и InterBase очевиден, но,
несмотря на это каждый месяц посетители поисковых систем ищут магические ODBC Firebird driver и ODBC InterBase driver для создания новых приложений.
Между тем выбор средства доступа к базе данных, как и самой базы данных,
является основой приложения и от этого выбора может зависеть не только производительность,
скорость разработки, но и успех проекта в целом.