|This article relies too much on references to primary sources. (April 2012) (Learn how and when to remove this template message)|
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 SQL.
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) stack.
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.