OLE DB ( English Object Linking and Embedding, Database , a veces escrito OLEDB , OLE-DB ) es un conjunto de interfaces COM que permiten que las aplicaciones funcionen unificadas con datos de diferentes fuentes y almacenes de información. Desarrollado por Microsoft como un desarrollo adicional de la tecnología de acceso a datos y que vendría como reemplazo y sucesor de ODBC , ampliando el conjunto de funciones para admitir una gama más amplia de fuentes de datos no relacionales, como bases de datos u hojas de cálculo orientadas a objetos , y para que no es necesario utilizar SQL .
OLE DB separa el almacén de datos de la aplicación, que debe tener acceso a él a través de un conjunto de abstracciones, que consta de una fuente de datos (DataSource), una sesión (Session), un comando (Command) y un conjunto de filas (Rowset). ). Esto se hizo para proporcionar un acceso unificado a varios tipos y fuentes de datos y para aislar los detalles de la interacción con un repositorio en particular. OLE DB se divide conceptualmente en consumidores (clientes) y proveedores (proveedores). El consumidor es la aplicación que necesita acceder a los datos, y el proveedor implementa la interfaz de acceso a los datos y, por lo tanto, proporciona información al consumidor.
La especificación OLE DB es parte de Microsoft Data Access Components (MDAC), que es un grupo de tecnologías de Microsoft que forman la base de una forma única y universal de desarrollar aplicaciones para acceder a datos desde prácticamente cualquier almacén de datos. MDAC incluye, por ejemplo, servicios OLE DB (grupo de conexiones, etc.) y componentes ADODB.
Los proveedores de OLE DB pueden proporcionar acceso tanto a almacenes de datos simples, en forma de archivos de texto y hojas de cálculo, como a bases de datos "reales" ejecutadas por Oracle Database , Microsoft SQL Server , Sybase ASE , Firebird e Interbase . También es posible acceder a almacenes de datos jerárquicos, como sistemas de correo electrónico.
Debido a que diferentes almacenes de datos pueden tener diferentes capacidades, los proveedores de OLE DB normalmente no admiten todas las interfaces descritas en la especificación de OLE DB. Las capacidades disponibles de un proveedor de datos se determinan solicitando punteros a las interfaces COM de sus objetos o leyendo las propiedades informativas del DataSource. Tenga en cuenta que un proveedor de datos puede implementar y proporcionar sus propias interfaces COM y estructuras de datos que no se describen en la especificación OLE DB.
Existe una fuerte opinión de que OLE DB se centra más en MS SQL, pero esto no es así. Los tipos de datos "matrices" y varias transacciones paralelas dentro de una conexión, compatibles con la especificación OLE DB, no son compatibles con MS SQL, pero están presentes en otros servidores de bases de datos (Firebird, Interbase). Si hay alguna "orientación", entonces se aplica solo al sistema operativo. Dado que OLE DB se basa en la tecnología COM y la compatibilidad completa con COM solo está disponible en Windows, los proveedores de OLE-DB solo existen para los sistemas operativos de la familia Windows.
Durante mucho tiempo, Microsoft recomendó usar OLE DB en lugar de ODBC , pero con el anuncio de Microsoft SQL Server 2014, se anunció [1] que la compatibilidad nativa con OLE DB para este producto se interrumpirá y solo permanecerá la compatibilidad con ODBC. Lo más probable es que se refiriera al proveedor OLE-DB "puro" para MSSQL (SQLOLEDB), y no al "Cliente SQL nativo" (SQLNCLI), que combinaba proveedores OLE DB y controladores ODBC. Sin embargo, desde el exterior parecía un rechazo total a OLE DB como tecnología. En octubre de 2017, esta decisión se declaró incorrecta y se anunció el lanzamiento de un proveedor OLE DB actualizado para MSSQL [2] .