C/Visual C - OLEDB & ODBC

 
Vista:

OLEDB & ODBC

Publicado por roberto (1 intervención) el 18/09/2007 04:15:27
Muy buenas comunidad; tengo una duda y en verdad no dou con ella.
Pues aquí le va.

Lo que deseo es poder trabajar .NET con Microsoft Access y no sé que utilizar para ello, si OleDb o Odbc.

¿Cuales son las principales diferencias entre OLEDB y ODBC y cuándo utilizar uno o el otro?.

Espero me ayuden porque en verdad estoy como loco.

Saludos... y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:OLEDB & ODBC

Publicado por fernando.gomez (1603 intervenciones) el 18/09/2007 18:16:08
En el caso de código administrado, prácticamente es lo mismo, aunque OLEDB es un poco más rápido y más nuevo, y su diseño es "orientado a objetos" (entre comillas, porque está basado en COM), mientras que ODBC es un API escrita en C (aunque para el caso de código administrado existen envoltorios).

OLEDB se conecta directamente a la base de datos, mientras que con ODBC te conectas a los drivers ODBC, y estos a su vez se conectan (siguiendo especificaciones) a la base de datos y obtienen la información correspondiente. Es decir, mientras OLEDB es un modelo de 2 capas, ODBC es de tres capas.

Por otro lado, ODBC define tipos de datos estándares mientras que OLEDB puede definir tipos específicos para la base de datos específica. Además, ODBC cumple con ISO SQL 92, mientras que OLEDB se toma más libertades.

Sin embargo, estas consideraciones dejan de tener sentido cuando estamos con código administrado, porque 1) hay tipos de datos predefinidos (los del CLR), 2) todo es orientado a objetos (siguendo el CLS), 3) siempre hay una plataforma intermedia (System::Data::OleDb* y clases relacionadas).

En todo caso, OLEDB debería ser un poco más rápido, aunque con mayor carga en memoria que ODBC.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar