Унифицированный доступ к данным с помощью Microsoft OLE DB API
OLE DB
OLE DB от Microsoft: единый API для доступа к данным из разных источников (базы данных, таблицы). Абстракции для упрощения работы с гетерогенными данными.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Microsoft API для унифицированного доступа к разнородным источникам данных
Microsoft API for uniform access from heterogeneous data sources
OLE DB (Object Linking and Embedding, Database, иногда записывается как OLEDB или OLE DB) — API, разработанный Microsoft, обеспечивающий унифицированный доступ к данным из различных источников. API предоставляет набор интерфейсов, реализованных с использованием Component Object Model (COM); в остальном он не связан с OLE. Изначально Microsoft планировала OLE DB как замену и преемника ODBC более высокого уровня, расширяя его функциональность для поддержки более широкого спектра нереляционных баз данных, таких как объектные базы данных и электронные таблицы, которые не обязательно его реализуют.
OLE DB (Object Linking and Embedding, Database, sometimes written as OLEDB or OLE DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using the Component Object Model (COM); it is otherwise unrelated to OLE. Microsoft originally intended OLE DB as a higher level replacement for, and successor to, ODBC, extending its feature set to support a wider variety of non relational databases, such as object databases and spreadsheets that do not necessarily implement.
Методология
OLE DB отделяет хранилище данных от приложения, которому требуется к нему доступ, с помощью набора абстракций, включающих источник данных, сеанс, команду и наборы строк. Это сделано потому, что различным приложениям необходим доступ к разным типам и источникам данных, и они не хотят знать специфические технологические детали реализации доступа к функциональности. OLE DB концептуально разделен на потребителей и поставщиков. Потребители – это приложения, которым нужен доступ к данным, а поставщики – программные компоненты, реализующие интерфейс и предоставляющие данные потребителям. OLE DB входит в состав Microsoft Data Access Components (MDAC).
OLE DB separates the data store from the application that needs access to it through a set of abstractions that include the datasource, session, command, and rowsets. This was done because different applications need access to different types and sources of data, and do not necessarily want to know how to access functionality with technology specific methods. OLE DB is conceptually divided into consumers and providers. The consumers are the applications that need access to the data, and the providers are the software components that implement the interface and thereby provides the data to the consumer. OLE DB is part of the 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 года.
Microsoft's release of SQL Server 2012 (internal code: 'Denali') is the last to include an OLE DB provider for SQL Server, but support will continue for 7 years. According to a related Microsoft FAQ, "Providers like ADO. NET which can run on top of OLE DB will not support OLE DB once the latter is deprecated", but the same answer in the FAQ states that the original post relates only to the OLE DB provider for SQL Server, so the position of OLE DB itself remains unclear. The same FAQ states that ODBC performs better than OLE DB in most cases. However, during subsequent reviews it was determined that deprecation was a mistake because substantial scenarios within SQL Server still depend on OLE DB and changing those would break some existing customer scenarios. On Oct 6, 2017 Microsoft announced that OLE DB was undeprecated, and a new version to maintain dependencies would be released in early 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 называются службами.
An OLE DB provider is a software component that enables an OLE DB consumer to interact with a data source. OLE DB providers are analogous to ODBC drivers, JDBC drivers, and ADO. NET data providers. OLE DB providers can be created to access such simple data stores as a text file and spreadsheet, through to such complex databases as Oracle, Microsoft SQL Server, Sybase ASE, and many others. It can also provide access to hierarchical data stores such as email systems. However, because different data store technologies can have different capabilities, every OLE DB provider cannot implement every possible interface available in the OLE DB standard. The capabilities that are available are implemented through the use of COM objects; an OLE DB provider will map the data store technologies functionality to a particular COM interface. Microsoft describes the availability of an interface as "provider specific," as it may not be applicable depending on the data store technology involved. Providers may augment the capabilities of a data store; these capabilities are known as services in Microsoft parlance.