Введение

Microsoft API для унифицированного доступа к разнородным источникам данных

OLE DB (Object Linking and Embedding, Database, иногда записывается как OLEDB или OLE DB) — API, разработанный Microsoft, обеспечивающий унифицированный доступ к данным из различных источников. API предоставляет набор интерфейсов, реализованных с использованием Component Object Model (COM); в остальном он не связан с OLE. Изначально Microsoft планировала OLE DB как замену и преемника ODBC более высокого уровня, расширяя его функциональность для поддержки более широкого спектра нереляционных баз данных, таких как объектные базы данных и электронные таблицы, которые не обязательно его реализуют.

Методология

OLE DB отделяет хранилище данных от приложения, которому требуется к нему доступ, с помощью набора абстракций, включающих источник данных, сеанс, команду и наборы строк. Это сделано потому, что различным приложениям необходим доступ к разным типам и источникам данных, и они не хотят знать специфические технологические детали реализации доступа к функциональности. OLE DB концептуально разделен на потребителей и поставщиков. Потребители – это приложения, которым нужен доступ к данным, а поставщики – программные компоненты, реализующие интерфейс и предоставляющие данные потребителям. OLE DB входит в состав Microsoft Data Access Components (MDAC).

Статус поддержки

Microsoft выпустит SQL Server 2012 (внутренний код: "Denali") последним, который включает в себя OLE DB провайдер для SQL Server, но поддержка будет продолжаться в течение 7 лет. Согласно соответствующему FAQ Microsoft, "Поставщики, такие как ADO.NET, которые могут работать поверх OLE DB, перестанут поддерживать OLE DB после его устаревания", однако в том же ответе в FAQ уточняется, что первоначальное сообщение относится только к OLE DB провайдеру для SQL Server, поэтому статус самой технологии OLE DB остается неясным. В том же FAQ также говорится, что ODBC работает лучше, чем OLE DB в большинстве случаев. Однако в ходе последующего анализа было установлено, что отказ от OLE DB был ошибкой, поскольку значительное количество сценариев в SQL Server по-прежнему зависит от него, и изменение этих сценариев привело бы к проблемам у некоторых клиентов. 6 октября 2017 года Microsoft объявила об отказе от планов по прекращению поддержки OLE DB и сообщила о выпуске новой версии для обеспечения совместимости в начале 2018 года.

Поставщики OLE DB

Провайдер OLE DB — это программный компонент, обеспечивающий взаимодействие потребителя OLE DB с источником данных. Провайдеры OLE DB аналогичны драйверам ODBC, JDBC и провайдерам данных .NET. Провайдеры OLE DB могут быть созданы для доступа к различным хранилищам данных – от простых, таких как текстовые файлы и электронные таблицы, до сложных баз данных, таких как Oracle, Microsoft SQL Server, Sybase ASE и многих других. Они также могут обеспечивать доступ к иерархическим хранилищам данных, например, к системам электронной почты. Однако, поскольку различные технологии хранения данных обладают разными возможностями, не каждый провайдер OLE DB может реализовать все возможные интерфейсы, предусмотренные стандартом OLE DB. Доступные возможности реализуются посредством объектов COM: провайдер OLE DB отображает функциональность технологии хранения данных на конкретный интерфейс COM. Microsoft определяет доступность интерфейса как "специфичную для провайдера", поскольку она может быть неприменима в зависимости от используемой технологии хранения данных. Провайдеры могут расширять возможности хранилища данных; эти расширения в терминологии Microsoft называются службами.