Dois-je utiliser DAO ou ODBC ?
Mise à jour : novembre 2007
Remarque : |
---|
Dans Visual C++ .NET, les Assistants et l'environnement Visual C++ ne prennent plus en charge DAO (même si les classes DAO sont incluses et que vous pouvez toujours les utiliser). Microsoft vous recommande d'utiliser les modèles OLE DB ou ODBC pour vos nouveaux projets. Vous ne devez utiliser DAO que dans les applications existantes. |
Quel jeu de classes MFC devez-vous utiliser ? Tout dépend de vos besoins :
Utilisez les classes ODBC si vous travaillez exclusivement avec des sources de données ODBC, notamment dans les configurations client-serveur, où les classes ODBC MFC offrent de meilleures performances.
Utilisez les classes DAO si vous travaillez essentiellement avec les bases de données Microsoft Jet (.mdb) ou d'autres formats de bases de données que le moteur de bases de données Microsoft Jet peut lire directement. Pour obtenir la liste de ces bases de données, consultez À quelles bases de données puis-je accéder avec DAO et ODBC ?
Accédez aux sources de données ODBC via les classes DAO lorsque vous souhaitez tirer parti de la vitesse du moteur de bases de données Microsoft Jet et des fonctionnalités supplémentaires des classes DAO.
Remarque : DAO requiert de l'espace supplémentaire sur le disque dur.
Les classes DAO offrent les avantages suivants :
performances accrues dans certains cas, notamment lors de l'utilisation de bases de données Microsoft Jet (.mdb) ;
compatibilité avec les classes ODBC et avec Microsoft Access Basic et Microsoft Visual Basic ;
accès aux règles de validation ;
possibilité de spécifier des relations entre les tables ;
modèle d'accès aux données plus riche, avec la prise en charge des langages de définition de données (DDL) et de manipulation de données (DML). Pour plus d'informations, consultez Définition et manipulation de base de données.
Le tableau suivant résume les différences clés pour vous aider à choisir.
Choix entre les classes ODBC et DAO MFC
Fonctionnalité |
Classes DAO |
Classes ODBC |
---|---|---|
Accès aux fichiers .MDB |
Oui |
Oui |
Accès aux sources de données ODBC |
Oui |
Oui |
Disponibilité pour 16 bits |
Non |
Oui |
Disponibilité pour 32 bits |
Oui |
Oui |
Disponibilité pour 64 bits |
Non |
Oui |
Compactage de base de données |
Oui |
Non |
Prise en charge du moteur de base de données |
Moteur de bases de données Microsoft Jet |
Système SGBD cible |
Prise en charge de DDL |
Oui |
Uniquement par l'intermédiaire d'appels ODBC directs |
Prise en charge de DML |
Oui |
Oui |
Nature de l'implémentation MFC |
« Wrapper » des fonctions DAO de base |
Abstraction simplifiée plutôt qu'un « wrapper » de l'interface API ODBC |
Optimisation pour |
Fichiers .mdb (Microsoft Access) |
Tout système SGBD pour lequel vous avez un pilote, notamment dans les configurations client-serveur |
Prise en charge des transactions |
Par solution, ou pour les données ODBC, par base de données |
Par base de données |
N'oubliez pas que les fonctionnalités des pilotes ODBC varient. Pour plus d'informations, consultez le Guide de référence du programmeur ODBC et le fichier d'aide du pilote ODBC.