ActiveX Data Objects
ActiveX Data Objects (ADO; deutsch ActiveX-Datenobjekte) [ˌæktɪvˈɛks ˈdeɪtəˌɑːbdʒɪkts] ist eine auf ActiveX basierende Schnittstelle zum Datenzugriff auf Datenbanken und tabellenartige Datenquellen wie z. B. Excel-Arbeitsblätter und CSV-Dateien.
Grundlegendes
ADO ist der Nachfolger von DAO (Data Access Objects). Mit ADO lassen sich nahezu alle gebräuchlichen Datenbanken ansprechen, wie z. B. Microsoft Access, SQL-Server, Oracle oder Informix.
Das ADO-Datenmodell besteht aus den drei wichtigsten Komponenten:
- Connection (Verbindung)
- Muss den Ort und den Namen der angesprochenen Datenbank beinhalten und stellt die Verbindung mit der Datenbank her.
- Recordset (Datensatz-Objekt)
- Der Verbindung untergeordnetes und abhängiges Objekt, das Daten in Form von Tabellen oder Abfragen beinhaltet.
- Command (Befehls-Objekt)
- Mit dem Command-Objekt lässt sich die Datenbank mit Befehlen wie z. B.
SELECT
,UPDATE
,CREATE TABLE
,INSERT INTO
abfragen oder ändern.
Der Datenbankzugriff mit ADO weist gegenüber dem Vorgänger (DAO) nur unter bestimmten Umständen Verbesserungen in der Ausführungsgeschwindigkeit auf. Der Grund liegt bei ADO in der Verwendung der ODBC-Schnittstelle. Für die Festlegung des Datenbankzugriffs wird der OLE-DB-Provider benötigt, der zur Neuerung von ADO gehört. Mit Hilfe des Providers kann dem Connection-Objekt mitgeteilt werden, auf welche Datenbank zugegriffen werden soll und um welche Version es sich dabei handelt. Der Wert wird dabei als String angegeben. Beispiel: "Microsoft.Jet.OLEDB.4.0" für Access 2000.
Mit Einführung der .NET-Technologie wurde ADO zu ADO.NET, was trotz des Namens eher als komplettes Neudesign denn als Evolutionsschritt zu betrachten ist. ADO.NET legt den Schwerpunkt auf sogenannte Disconnected-Szenarios, bei denen die Verbindung zur Datenbank immer nur so kurz wie möglich aufrechterhalten werden soll. Ein ähnliches Prinzip war unter ADO mit den Disconnected Recordsets möglich.
Weblinks
- ADO Dokumentation bei Microsoft (englisch)
- ConnectionStrings Übersicht (englisch)