Data Access Objects
Data Access Objects, in der deutschsprachigen Dokumentation „Datenzugriffsobjekte“, üblicherweise mit der Abkürzung „DAO“ bezeichnet, ist eine Schnittstellen-Bibliothek von Microsoft für den Zugriff auf Daten und Strukturen von Datenbanken, speziell Microsoft Access Datenbanken (MDBs).
Bis einschließlich Access 97 war die DAO-Bibliothek die Standard-Bibliothek zum programmiertechnischen Zugriff auf die Datenbank-Objekte und Daten in Access selbst. Bei Access 2000, Access 2002 (Office XP) und Access 2003 wurde DAO nur aus Kompatibilitätsgründen noch mitgeliefert (in der Version 3.6), als Standard-Bibliothek war ADO vorgesehen. DAO erfreut sich aber bei Access-Entwicklern immer noch großer Beliebtheit, u. a. da es spezifischeren Zugriff auf Teile von Access erlaubt als ADO.
Bei Access 2007 ist die DAO-Bibliothek unter der neuen Lang-Bezeichnung „Access Database Engine Object Library“ mit der Versionsnummer 12.0 (Dateiname: ACEDAO.DLL, Qualifizierer im Code weiterhin: DAO) wieder Standard-Bibliothek für den Zugriff auf Datenbank-Objekte und Daten in MDBs.
Die DAO-Bibliothek bietet eine zweiteilige Objekthierarchie: Ausgehend vom Basis-Objekt „DBEngine“ gibt es „Workspace“-Objekte der Typen „Jet Workspace“ (zum Zugriff auf MDBs) und „ODBCDirect Workspace“ (seit DAO 3.5, zum Zugriff auf ODBC-Datenquellen) mit jeweils unterschiedlichen untergeordneten Objekten.
Ein „Jet Workspace“ enthält „Database“-Objekte, die MDBs repräsentieren. Auf die Datenstruktur der MDB kann über „TableDef“-, „Relations“- und „QueryDef“-Objekte zugegriffen werden, auf die Daten über „Recordset“-Objekte. Des Weiteren gibt es „User“-, „Group“-, „Container“- und „Document“-Objekte für den Zugriff auf das Rechtesystem von Access. In der Version 12.0 sind letztere Objekte (oder deren Eigenschaften und Methoden, die sich speziell auf das Rechtesystem beziehen) aber ganz ausgeblendet. Ein „Jet Workspace“ nutzt die Bibliotheken der Jet-Engine für die tatsächliche Ausführung.
Ein „ODBCDirect Workspace“ enthält Alternativ zu „Database“-Objekten „Connection“-Objekte, darunter aber nur Recordset- und, bei Connection-Objekten, QueryDef-Objekte. Ein „ODBCDirect Workspace“ greift über die RDO-Bibliothek auf die ODBC-API zu. Die Version 12.0 unterstützt den „ODBCDirect Workspace“ laut Dokumentation nicht mehr und verweist auf ADO für den Zugriff auf ODBC-Datenquellen.
MS Office XP liefert eine DAO-PIA als Interface für das .Net-Framework mit.