Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/06/2008, 10:39
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Diferencias ADO.ODBC, OLE DB

Hola!

A ver si con esta parrafada te puedo aclarar algo.

ADO (ActiveX Data Object) es la evolución de los objetos de acceso a datos de Microsoft, que empezó con DAO (Data Access Object) y siguió con RDO (Remote Data Object). ADO es en realidad una implementación de acceso al paradigma de datos OLE DB, también de Microsoft, que abstrae las capas más básicas de los orígenes de datos unificando los métodos y funciones disponibles.

Hablando en cristiano, OLE DB es quien hace el trabajo sucio de coger los datos de donde sea (una base de datos, una hoja de cálculo, un fichero de texto, etc) y ADO los presenta al programador. Para que te hagas una idea, el método MoveFirst de ADO, para OLE DB puede significar que vaya al primer registro (en una base de datos Access o de cualquier otro tipo), que vaya a la primera línea (en un fichero de texto), que seleccione la primera fila (en una hoja de cálculo), etc.

De esta forma, el programador no se preocupa de cómo se almacenan los datos, sólo de explotarlos.

Por otra parte, ODBC (Open Data Base Connectivity - Conectividad Bases de Datos Abierta -maomeno - ) es un standard ISO, y creo que también propiedad de Microsoft, para intentar unificar el modo de acceso a bases de datos de diferentes fabricantes (MySQL, Oracle, Informix, etc)

¿Cual es la diferencia entre ambos? ODBC requiere que el gestor de base de datos al que se quiera acceder cumpla con unos requisitos mínimos, lo que garantiza la integridad (entre otras cosas) al acceder a bases de datos relacionales e ISAM, mientras que OLE DB no tiene esos requisitos, por lo que puede acceder a orígenes de datos que no sean relacionales.

De hecho, OLE DB puede acceder a los drivers de ODBC.

En cualquier caso, a la hora de programar en VB, todo esto resulta transparente al usuario. Si agregas un Data Control al formulario, verás que la propiedad DefaultType te permite elegir entre el engine Jet (Access, sobre todo) y ODBC. Si despliegas la propiedad Connect, verás que puedes abrir bases de datos en DBaseIII, que no es relacional ni de lejos, o ficheros de Lotus o texto plano, y eso es gracias a OLE DB.

De todas formas, salvo que vayas a programar directamente utilizando APIs (y utilizar las de ODBC y OLE DB en VB no tiene mucho sentido), no deberías preocuparte mucho de todo esto, porque las ventajas no creo que compensen el esfuerzo.

Como te digo, el acceso OLE DB es totalmente transparente, y conectar por ODBC requiere algo de configuración, pero se pueden utilizar tambien los Data Control para ello (si lo sabré yo... )

Espero haber aclarado un poco tus dudas, nos vemos!