qué - ¿Cuál es la diferencia entre las fuentes de datos OLE DB y ODBC?
para que se utilizan los odbc y jdbc (10)
• Agosto de 2011: Microsoft rechaza OLE DB ( Microsoft se está alineando con ODBC para el acceso nativo de datos relacionales )
• Octubre de 2018: Microsoft descifra OLE DB ( Anunciando la nueva versión de Driver OLE DB para SQL Server )
Estaba leyendo un artículo de ayuda de MS Excel sobre pivotcache y me pregunto qué quieren decir con fuentes OLE DB y ODBC.
... Debe usar la propiedad CommandText en lugar de la propiedad SQL, que ahora existe principalmente para compatibilidad con versiones anteriores de Microsoft Excel. Si usa ambas propiedades, el valor de la propiedad CommandText tiene prioridad.
Para fuentes OLE DB , la propiedad CommandType describe el valor de la propiedad CommandText.
Para las fuentes ODBC , la propiedad CommandText funciona exactamente igual que la propiedad SQL, y establecer la propiedad hace que los datos se actualicen ...
Realmente aprecio tus respuestas cortas.
Ambos son proveedores de datos (API que su código usará para hablar con una fuente de datos). Oledb, que se introdujo en 1998, pretendía ser un reemplazo de ODBC (introducido en 1992)
Aquí está mi entendimiento (no autorizado):
ODBC es un estándar abierto independiente de la tecnología respaldado por la mayoría de los proveedores de software. OLEDB es una API de Microsoft específica de la tecnología de la era COM (COM era una tecnología de componentes e interoperabilidad antes de .NET)
En algún momento, varios proveedores de soluciones de datos (por ejemplo, Oracle, etc.), dispuestos a ser compatibles con los consumidores de datos de Microsoft, desarrollaron proveedores de OLEDB para sus productos, pero en su mayor parte OLEDB sigue siendo un estándar exclusivo de Microsoft. Ahora, la mayoría de las fuentes de datos de Microsoft permiten el acceso ODBC y OLEDB, principalmente para la compatibilidad con los consumidores de datos heredados de ODBC. Además, existe un proveedor OLEDB (contenedor) para ODBC que le permite a uno usar OLEDB para acceder a las fuentes de datos ODBC, si así lo desea.
En términos de las características, OLEDB es sustancialmente más rico que ODBC, pero sufre del síndrome de un anillo a otro (excesivamente genérico, sobrecomplicado, no obstinado).
En el mundo que no es de Microsoft, los proveedores de datos basados en ODBC y los clientes son ampliamente utilizados y no van a ningún lado.
Dentro de la burbuja OLEDB de Microsoft se está eliminando paulatinamente a favor de que las API .NET nativas se construyan sobre cualquier capa de transporte nativa para esa fuente de datos (por ejemplo, TDS para MS SQL Server).
En el sitio web de Microsoft, muestra que el proveedor OLEDB nativo se aplica directamente al servidor SQL y otro proveedor OLEDB llamado Proveedor OLEDB para que ODBC acceda a otra Base de datos, como Sysbase, DB2, etc. Hay diferentes tipos de componentes bajo Proveedor OLEDB. Consulte Consultas distribuidas en MSDN para obtener más información.
En un nivel muy básico, esas son solo diferentes API para las diferentes fuentes de datos (es decir, bases de datos). OLE DB es más nuevo y podría decirse que es mejor.
Puedes leer más sobre ambos en Wikipedia:
Es decir, podría conectarse a la misma base de datos utilizando un controlador ODBC o un controlador OLE DB. La diferencia en el comportamiento de la base de datos en esos casos es a lo que se refiere su libro.
No estoy seguro de todos los detalles, pero tengo entendido que OLE DB y ODBC son dos API que están disponibles para conectarse a varios tipos de bases de datos sin tener que lidiar con todos los detalles específicos de cada implementación. Según el artículo de Wikipedia sobre OLE DB , OLE DB es el sucesor de Microsoft de ODBC y proporciona algunas características que es posible que no pueda hacer con ODBC, como acceder a hojas de cálculo como fuentes de bases de datos.
ODBC funciona solo para bases de datos relacionales, no funciona con bases de datos no relacionales, como archivos Ms Excel. Donde Olebd puede hacer todo.
ODBC: - Solo para bases de datos relacionales (Sql Server, Oracle, etc.)
OLE DB: para bases de datos relacionales y no relacionales. (Oracle, Sql-Server, Excel, archivos sin formato, etc.)
Para saber por qué M $ inventa OLEDB, no puede comparar OLEDB con ODBC. En su lugar, debe comparar OLEDB con DAO, RDO o ADO. El último depende en gran medida de SQL. Sin embargo, OLEDB depende de COM. Pero ODBC ya está allí por muchos años, así que hay puentes OLEDB-ODBC para remediar esto. Creo que hay una gran imagen cuando M $ inventa OLEDB.
Según ADO: ActiveX Data Objects , un libro de Jason T. Roff, publicado por O''Reilly Media en 2001 (excelente diagrama aquí), dice precisamente lo que dijo MOZILLA.
(directamente de la página 7 de ese libro)
- ODBC proporciona acceso solo a bases de datos relacionales
- OLE DB proporciona las siguientes características
- Acceso a datos independientemente de su formato o ubicación
- Acceso completo a las fuentes de datos ODBC y controladores ODBC
Por lo tanto, parece que OLE DB interactúa con los orígenes de datos basados en SQL a través de la capa de controlador ODBC.
No estoy 100% seguro de que esta imagen sea correcta. Las dos conexiones de las que no estoy seguro son ADO.NET a través de ADO C-api y OLE DB a través de fuente de datos ODBC a SQL (porque en este diagrama el autor no pone el acceso de OLE DB a través de ODBC, lo que creo es un error).