Pregunta

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 la compatibilidad con versiones anteriores de Microsoft Excel.Si usa ambas propiedades, el valor de la propiedad de comandante tiene prioridad.

Para fuentes OLE DB, la propiedad CommandType describe el valor de la propiedad CommandText.

Para fuentes ODBC, la propiedad CommandText funciona exactamente como la propiedad SQL, y la configuración de la propiedad hace que los datos se actualicen ...

Realmente aprecio sus breves respuestas.

¿Fue útil?

Solución

De acuerdo a ALHARACA:Objetos de datos ActiveX, 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 sólo a bases de datos relacionales
  • OLE DB proporciona las siguientes características
    • Acceso a los datos independientemente de su formato o ubicación
    • Acceso completo a fuentes de datos ODBC y controladores ODBC

Entonces parecería que OLE DB interactúa con fuentes de datos basadas en SQL A TRAVÉS de la capa del controlador ODBC.

alt text

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 ODBC a una fuente de datos basada en SQL (porque en este diagrama el autor no coloca el acceso a OLE DB a través de ODBC, lo cual creo que es un error).

Otros consejos

ODBC: - Sólo para bases de datos relacionales (Sql Server, Oracle, etc.)

OLE DB: – Para bases de datos tanto relacionales como no relacionales.(Oracle, Sql-Server, Excel, archivos sin formato, etc.)

Aquí está mi entendimiento (no autorizado):

ODBC es un estándar abierto independiente de la tecnología compatible con la mayoría de los proveedores de software.OLEDB es un específico de la tecnología API de Microsoft de la era COM (COM era un componente y una tecnología de interoperabilidad antes de .NET)

En algún momento, varios proveedores de fuentes de datos (p. ej.Oracle, etc.), deseosos de ser compatibles con los consumidores de datos de Microsoft, desarrollaron proveedores OLEDB para sus productos, pero en su mayor parte OLEDB sigue siendo un estándar exclusivo de Microsoft.Ahora, la mayoría microsoft Las fuentes de datos permiten el acceso tanto ODBC como OLEDB, principalmente por compatibilidad con consumidores de datos ODBC heredados.Además, existe un proveedor OLEDB (envoltorio) para ODBC que permite utilizar OLEDB para acceder a fuentes de datos ODBC si así lo desea.

En términos de características, OLEDB es sustancialmente más rico que ODBC, pero sufre del síndrome de un solo anillo para gobernarlos a todos (demasiado genérico, demasiado complicado, sin opiniones).

En el mundo ajeno a Microsoft, los proveedores y clientes de datos basados ​​en ODBC se utilizan ampliamente y no van a ninguna parte.

Dentro de la burbuja de Microsoft, OLEDB se está eliminando gradualmente en favor de API .NET nativas construidas sobre cualquier capa de transporte nativa para esa fuente de datos (por ejemplo,TDS para MS SQL Server).

ODBC y OLE DB son dos tecnologías de acceso a datos que compiten.Específicamente con respecto a SQL Server, Microsoft los ha promocionado a ambos como su dirección futura preferida, aunque en momentos diferentes.

ODBC

ODBC es una interfaz estándar en toda la industria para acceder a datos similares a tablas.Fue desarrollado principalmente para bases de datos y presenta datos en colecciones de registros, cada uno de los cuales está agrupado en una colección de campos.Cada campo tiene su propio tipo de datos adecuado al tipo de datos que contiene.Cada proveedor de bases de datos (Microsoft, Oracle, Postgres,…) proporciona un controlador ODBC para su base de datos.

También existen controladores ODBC para objetos que, aunque no son tablas de bases de datos, son lo suficientemente similares como para que sea útil acceder a los datos de la misma manera.Algunos ejemplos son hojas de cálculo, archivos CSV e informes en columnas.

OLE-DB

OLE DB es una tecnología de Microsoft para el acceso a datos.A diferencia de ODBC, abarca datos tipo tabla y no tipo tabla, como mensajes de correo electrónico, páginas web, documentos de Word y directorios de archivos.Sin embargo, está más orientado a procedimientos que a objetos y se considera una interfaz bastante difícil con la que desarrollar el acceso a fuentes de datos.Para superar esto, ADO fue diseñado para ser una capa orientada a objetos sobre OLE DB y para proporcionar una forma más simple y de mayor nivel (aunque aún muy poderosa) de trabajar con él.La gran ventaja de ADO es que puede usarlo para manipular propiedades que son específicas de un tipo determinado de fuente de datos, con la misma facilidad con la que puede usarlo para acceder a aquellas propiedades que se aplican a todos los tipos de fuentes de datos.No está restringido a un mínimo común denominador insatisfactorio.

Si bien todas las bases de datos tienen controladores ODBC, no todas tienen controladores OLE DB.Sin embargo, existe una interfaz disponible entre OLE y ODBC que se puede utilizar si desea acceder a ellos de forma similar a OLE DB.Esta interfaz se llama MSDASQL (proveedor Microsoft OLE DB para ODBC).

Tecnologías de acceso a datos de SQL Server

Dado que SQL Server es (1) creado por Microsoft y (2) el La plataforma de base de datos de Microsoft, tanto ODBC como OLE DB, son ideales para ella.

ODBC

Dado que todas las demás plataformas de bases de datos tenían interfaces ODBC, Microsoft obviamente tuvo que proporcionar una para SQL Server.Además de esto, DAO, la tecnología predeterminada original de Microsoft Access, utiliza ODBC como forma estándar de comunicarse con todas las fuentes de datos externas.Esto hizo que una interfaz ODBC fuera una condición sine qua non.La versión 6 del controlador ODBC para SQL Server, lanzada con SQL Server 2000, todavía existe.Se han lanzado versiones actualizadas para manejar los nuevos tipos de datos, tecnologías de conexión, cifrado, HA/DR, etc.que han aparecido con lanzamientos posteriores.A partir del 07/09/2018, la versión más reciente es la v13.1 “Controlador ODBC para SQL Server”, publicada el 23/03/2018.

OLE-DB

Esta es la tecnología propia de Microsoft, que promovieron fuertemente entre 2002 y 2005, junto con la capa ADO que la acompaña.Evidentemente esperaban que se convirtiera en la tecnología de acceso a datos preferida.(Incluso hicieron de ADO el método predeterminado para acceder a los datos en Access 2002/2003). Sin embargo, finalmente se hizo evidente que esto no iba a suceder por varias razones, como por ejemplo:

  1. El mundo no iba a convertir a Microsoft Technologies y lejos de ODBC;
  2. DAO/ODBC era más rápido que ADO/OLE DB y también estaba completamente integrado en MS Access, por lo que no iba a morir de muerte natural;
  3. Las nuevas tecnologías que estaban siendo desarrolladas por Microsoft, específicamente ADO.NET, también podrían hablar directamente con ODBC.Ado.net también podría hablar directamente con OLE DB (dejando así a ADO en un remanso), pero no era (a diferencia de ADO) solo dependía de él.

Por estas razones y otros, Microsoft en realidad OLE DB obsoleto como tecnología de acceso a datos para versiones de SQL Server posteriores a v11 (SQL Server 2012).Durante un par de años antes de este punto, habían estado produciendo y actualizando SQL Server Native Client, que admitía tecnologías ODBC y OLE DB.Sin embargo, a finales de 2012, anunciaron que se alinearían con ODBC para el acceso nativo a datos relacionales en SQL Server y alentaron a todos los demás a hacer lo mismo.Además, afirmaron que las versiones de SQL Server posteriores a v11/SQL Server 2012 se activarían activamente. no soporte OLEDB!

Este anuncio provocó una tormenta de protestas.La gente no podía entender por qué MS de repente estaba desaprobando una tecnología con la que habían pasado años consiguiendo que se comprometieran.Además, SSAS/SSRS y SSIS, que eran aplicaciones escritas en MS íntimamente vinculadas a SQL Server, dependían total o parcialmente de OLE DB.Otra queja más fue que OLE DB tenía ciertas características deseables que parecía imposible trasladar a ODBC; después de todo, OLE DB tenía muchos puntos buenos.

En octubre de 2017, Microsoft cedió y OLE DB oficialmente no obsoleto.Anunciaron la inminente llegada de un nuevo controlador (MSOLEDBSQL) que tendría el conjunto de funciones existente de Native Client 11 y también introduciría conmutación por error de múltiples subredes y compatibilidad con TLS 1.2.El conductor quedó en libertad en marzo de 2018.

En un nivel muy básico, esas son simplemente API diferentes para las diferentes fuentes de datos (es decir,bases de datos).OLE DB es más nuevo y posiblemente mejor.

Puedes leer más sobre ambos en Wikipedia:

  1. OLE-DB
  2. ODBC

Es decir.puede 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 qué se refiere su libro.

Ambos son proveedores de datos (API que utilizará su código para comunicarse con una fuente de datos).Oledb, que se introdujo en 1998, estaba destinado a reemplazar a ODBC (introducido en 1992).

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 implementación de cada una.De acuerdo a el artículo de Wikipedia sobre OLE DB, OLE DB es el sucesor de ODBC de Microsoft y proporciona algunas funciones que quizás no pueda realizar con ODBC, como el acceso a hojas de cálculo como fuentes de bases de datos.

En el sitio web de Microsoft, se muestra que el proveedor OLEDB nativo se aplica directamente al servidor SQL y otro proveedor OLEDB llamado Proveedor OLEDB para que ODBC acceda a otras bases de datos, como Sysbase, DB2, etc.Hay diferentes tipos de componentes en el proveedor OLEDB.Ver Consultas distribuidas en MSDN para más.

• Agosto de 2011:microsoft desaprobado OLE-DB (Microsoft se está alineando con ODBC para el acceso nativo a datos relacionales)

• Octubre de 2017:microsoft desaprobar OLE-DB (Anuncio de la nueva versión del controlador OLE DB para SQL Server)

ODBC funciona sólo para bases de datos relacionales, no funciona con bases de datos no relacionales como archivos Ms Excel.Donde Olebd puede hacer de todo.

Para saber por qué M$ inventa OLEDB, no se puede comparar OLEDB con ODBC.En su lugar, deberías comparar OLEDB con DAO, RDO o ADO.Este último se basa en gran medida en SQL.Sin embargo, OLEDB se basa en COM.Pero ODBC ya existe desde hace muchos años, por lo que existen puentes OLEDB-ODBC para remediar esto.Creo que hay un gran panorama cuando M$ inventa OLEDB.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top