¿Se debe utilizar DAO u ODBC?

Actualización: noviembre 2007

Nota:

A partir de Visual C++ .NET, el entorno y los asistentes de Visual C++ ya no admiten DAO (aunque las clases DAO están incluidas y todavía puede utilizarlas). Microsoft recomienda la utilización de plantillas OLE DB u ODBC para los proyectos nuevos. Sólo debería utilizar DAO para mantener las aplicaciones existentes.

¿Qué conjunto de clases MFC debería utilizar? Depende de sus necesidades:

  • Utilice las clases ODBC si sólo va a trabajar con orígenes de datos ODBC, especialmente en situaciones cliente/servidor, en las que las clases ODBC de MFC proporcionan un mejor rendimiento.

  • Utilice las clases DAO si va a trabajar principalmente con bases de datos de Microsoft Jet (.mdb) o con otros formatos de base de datos que pueda leer directamente el motor de bases de datos Microsoft Jet. Para consultar una lista de estas bases de datos, vea Bases de datos a las que se puede obtener acceso con DAO y ODBC

  • Obtenga acceso a orígenes de datos ODBC a través de las clases DAO cuando desee la velocidad del motor de bases de datos Microsoft Jet y la funcionalidad adicional de las clases DAO.

    Nota:

    DAO requiere espacio adicional en el disco duro.

Las clases DAO ofrecen las siguientes ventajas:

  • Mejor rendimiento en algunos casos, especialmente al utilizar bases de datos de Microsoft Jet (.mdb).

  • Compatibilidad con las clases ODBC y con Microsoft Access Basic y Microsoft Visual Basic.

  • Acceso a reglas de validación.

  • Capacidad de especificar relaciones entre tablas.

  • Un modelo de acceso a datos más variado, compatible con el Lenguaje de definición de datos (DDL) y con el Lenguaje de manipulación de datos (DML). Para obtener más información, vea Definición y manipulación de bases de datos.

La tabla siguiente resume las diferencias clave para ayudarle a elegir.

Elegir entre clases DAO de MFC y clases ODBC de MFC

¿Me ofrecen...

...las clases DAO?

...las clases ODBC?

Acceso a archivos .MDB

Acceso a orígenes de datos ODBC

Disponibilidad para 16 bits

No

Disponibilidad para 32 bits

Disponibilidad para 64 bits

No

Compactación de bases de datos

No

Compatibilidad con el motor de bases de datos

Motor de bases de datos Microsoft Jet

DBMS de destino

Compatibilidad con DDL

Sólo a través de llamadas directas a ODBC

Compatibilidad con DML

Tipo de implementación de MFC

Un "contenedor" de las funciones básicas de DAO

Una abstracción simplificada en lugar de un "contenedor" de la API de ODBC

Optimización

Para archivos .mdb (Microsoft Access)

Para cualquier DBMS para el que tenga un controlador, especialmente en situaciones cliente/servidor

Compatibilidad con transacciones

Para cada solución o, en el caso de datos ODBC, para cada base de datos

Para cada base de datos

Tenga en cuenta que las capacidades de los distintos controladores ODBC varían. Para obtener más información, vea la Referencia del programador de ODBC y el archivo de Ayuda del controlador ODBC.

Vea también

Otros recursos

Preguntas más frecuentes sobre Data Access