OLE DB (''Object Linking and Embedding, Database'', sometimes written as OLEDB or OLE-DB) is an
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
designed by
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
that allows accessing
data
Data ( , ) are a collection of discrete or continuous values that convey information, describing the quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted for ...
from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using the
Component Object Model
Component Object Model (COM) is a binary-interface technology for software components from Microsoft that enables using objects in a language-neutral way between different programming languages, programming contexts, processes and machines ...
(COM); it is otherwise unrelated to
OLE. Microsoft originally intended OLE DB as a higher-level replacement for, and successor to,
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
, extending its feature set to support a wider variety of non-
relational database
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970.
A Relational Database Management System (RDBMS) is a type of database management system that stores data in a structured for ...
s, such as
object database
An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are ...
s and
spreadsheet
A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in c ...
s that do not necessarily implement.
Methodology
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
A consumer is a person or a group who intends to order, or use purchased goods, products, or services primarily for personal, social, family, household and similar needs, who is not directly related to entrepreneurial or business activities. Th ...
'' 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).
Support status
Microsoft's release of
SQL Server 2012
The history of Microsoft SQL Server begins with the first Microsoft SQL Server database product – SQL Server v1.0, a 16-bit relational database for the OS/2 operating system, released in 1989.
Versions
Detailed history Genesis
By the late ...
(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
Deprecation is the discouragement of use of something human-made, such as a term, feature, design, or practice. Typically something is deprecated because it is claimed to be inferior compared to other options available.
Something may be deprec ...
", 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.
Microsoft SQLNCli team blog: Announcing the new release of OLE DB Driver for SQL Server
/ref>
OLE DB providers
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
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
, Microsoft SQL Server
Microsoft SQL Server is a proprietary relational database management system developed by Microsoft using Structured Query Language (SQL, often pronounced "sequel"). As a database server, it is a software product with the primary function of ...
, 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.
References
*
{{Microsoft APIs
Database APIs
Microsoft application programming interfaces
SQL data access