Sollte DAO oder ODBC verwendet werden?
Aktualisiert: November 2007
Hinweis: |
---|
Ab Visual C++ .NET wird DAO von der Visual C++-Umgebung und den Assistenten nicht mehr unterstützt. (Die DAO-Klassen sind allerdings weiterhin enthalten und können verwendet werden.) Microsoft empfiehlt für neue Projekte die Verwendung von OLE DB-Vorlagen oder ODBC. DAO sollte lediglich zur Verwaltung bereits bestehender Anwendungen eingesetzt werden. |
Welche MFC-Klassentypen sollten verwendet werden? Dies hängt von Ihren Anforderungen ab:
ODBC-Klassen sind empfehlenswert, wenn Sie ausschließlich mit ODBC-Datenquellen arbeiten, und zwar insbesondere in Client/Server-Konfigurationen, in denen die MFC-ODBC-Klassen eine bessere Leistung bieten.
DAO-Klassen sind ratsam, wenn Sie hauptsächlich mit Microsoft Jet-Datenbanken (.mdb) oder anderen Datenbankformaten arbeiten, die direkt vom Microsoft Jet-Datenbankmodul gelesen werden können. Eine Liste dieser Formate finden Sie unter Auf welche Datenquellen kann mit DAO und ODBC zugegriffen werden?
Wenn Sie die Geschwindigkeit des Microsoft Jet-Datenbankmoduls mit der zusätzlichen Funktionalität von DAO-Klassen kombinieren möchten, sollte der Zugriff auf ODBC-Datenquellen über die DAO-Klassen erfolgen.
Hinweis: DAO erfordert zusätzlichen Speicherplatz auf der Festplatte.
DAO-Klassen haben folgende Vorteile:
In einigen Fällen höhere Leistung, besonders wenn Microsoft Jet-Datenbanken (.mdb) verwendet werden.
Kompatibilität mit den ODBC-Klassen sowie mit Microsoft Access Basic und Microsoft Visual Basic.
Zugriff auf Validierungsregeln.
Die Möglichkeit, Beziehungen zwischen Tabellen festzulegen.
Ein leistungsfähigeres Datenzugriffsmodell mit Unterstützung der Datendefinitionssprache (DDL, Data Definition Language) und Datenbearbeitungssprache (DML, Data Manipulation Language). Weitere Informationen finden Sie unter Datenbankdefinition und -bearbeitung.
In der folgenden Tabelle sind die Hauptunterschiede zusammengefasst.
Entscheidung zwischen MFC-DAO- und MFC-ODBC-Klassen
Feature |
DAO-Klassen |
ODBC-Klassen |
---|---|---|
Zugriff auf MDB-Dateien |
Ja |
Ja |
Zugriff auf ODBC-Datenquellen |
Ja |
Ja |
Für 16 Bits verfügbar |
Nein |
Ja |
Für 32 Bits verfügbar |
Ja |
Ja |
Für 64 Bits verfügbar |
Nein |
Ja |
Datenbankkomprimierung |
Ja |
Nein |
Unterstützung von Datenbankmodulen |
Microsoft Jet-Datenbankmodul |
Ziel-DBMS |
DDL-Unterstützung |
Ja |
Nur über direkte ODBC-Aufrufe |
DML-Unterstützung |
Ja |
Ja |
Art der MFC-Implementierung |
"Wrapper" für DAO-Kernfunktionen |
Vereinfachte Abstraktion statt eines "Wrappers" für die ODBC-API |
Optimal geeignet für |
MDB-Dateien (Microsoft Access) |
Jedes DBMS, für das Treiber verfügbar sind; insbesondere Client/Server-Konfigurationen |
Transaktionsunterstützung |
Pro Projekt oder bei ODBC-Daten pro Datenbank |
Pro Datenbank |
Beachten Sie, dass die Fähigkeiten verschiedener ODBC-Treiber variieren können. Weitere Informationen finden Sie in der ODBC Programmer's Reference und in der Hilfedatei zum ODBC-Treiber.