Abschnitt 3 ADO-Programmiermodell ( ActiveX Data Objects).
Wie im Artikel „Einführung in ADO in Delphi“ beschrieben, handelt es sich bei ADO um eine Reihe von COM-Komponenten (Component Object Model, DLLs), mit denen Sie auf Datenbanken wie E-Mail- und Dateisysteme zugreifen können. Mit ADO geschriebene Anwendungen erfordern kein BDE. Um mit ADO auf verschiedene Datenbanken zugreifen zu können, benötigen Sie die ADO/OLE DB-Bibliothek (Object Linking and Embedding). Was Sie für die Verwendung von ADO benötigen, ist möglicherweise bereits auf Ihrem Computer vorhanden: Diese Dateien werden von Microsoft als Teil von Windows 98/2000 verteilt. Wenn Sie Windows 95 oder NT verwenden, müssen Sie möglicherweise die ADO-Engine verteilen oder installieren. Die Delphi 5-CD enthält die Installationsdateien für MDAC-Microsoft Data Access Components. Sie sollten sicherstellen, dass Sie die neueste Version von MDAC verwenden, die auf der offiziellen Website von Microsoft verfügbar ist. MDAC ist die Schlüsseltechnologie, die den universellen Datenzugriff ermöglicht. Dazu gehören ActiveX Data Objects (ADO), OLE DB und Open Database Connectivity (ODBC).
Hinweis: Für eine korrekte Installation auf einem Windows 95-Computer erfordert MDAC die Installation von DCOM95 (Distributed Component Object Model). Für eine ordnungsgemäße Registrierung hängen die von MDAC installierten Komponenten von den von DCOM95 installierten DLLs ab. Beachten Sie, dass DCOM95 in NT4.0 nicht erforderlich ist. In einigen Fällen muss DCOM nicht auf Computern installiert werden, auf denen Windows ausgeführt wird. Wenn es jedoch nicht installiert ist, sollte DCOM98 vor der Installation von MDAC installiert werden.
Es besteht kein Grund, zu viel über OLE DB und ADO zu diskutieren. Lassen Sie uns zu praktischeren Themen übergehen.
ADO- Objekte
Das ADO-Programmiermodell basiert auf mehreren ADO-Objekten, die mehrere Methoden für den Zugriff auf verschiedene Datenobjekte bereitstellen. Diese Objekte bieten die Funktionalität zum Herstellen einer Verbindung mit Datenquellen, zum Abfragen und Aktualisieren von Datensätzen sowie zum Melden von Fehlern. Delphi greift über mehrere VCL-Komponenten über gekapselte Komponenten auf diese Objekte zu. Werfen wir einen Blick auf die Objekte, die mit ADO funktionieren:
Ein Verbindungsobjekt , das über eine Verbindungszeichenfolge eine Verbindung zu einer Datenquelle herstellt. In BDE/Delphi ist das Verbindungsobjekt eine Kombination aus Datenbankkomponenten und Sitzungskomponenten.
Mit dem Befehlsobjekt (Befehl) können wir die Datenquelle bedienen. Es beschreibt einen Befehl (auch als Abfrage oder Anweisung betrachtet), der das Hinzufügen, Löschen, Abfragen oder Aktualisieren von Datenbankdaten verarbeiten kann.
Das Recordset -Objekt (Datensatzsatz) ist das Ergebnis des Abfragebefehls. Sie können sich Recordset als eine Delphi-Tabellenkomponente (Table) oder eine Abfragekomponente (Query) vorstellen. Jede vom Recordset zurückgegebene Zeile enthält mehrere Field-Objekte.
Mehrere andere Objekte, die im ADO-Modell vorhanden sind, sind: Feldobjekte, Parameterobjekte und Fehlerobjekte – wir werden in den folgenden Kapiteln auf sie zurückkommen.
Abschnitt 4 Verwenden Sie ADOExPRess, um eine Verbindung zur Datenbank herzustellen
Bevor wir eine kurze Erläuterung der einzelnen Komponenten der ADOExpress-Sammlung geben, wollen wir zunächst verstehen, wie eine Verbindung zu einer Access-Datenbank hergestellt wird. Selbstverständlich werden wir eine Verbindung zu unserer Beispieldatenbank herstellen – AboutDelphi.mdb (Zusatz des Übersetzers: die im vorherigen Kapitel erstellte Datenbank).
Delphi(5) unterstützt ADO hauptsächlich über die ADOExpress-Komponente auf der ADO-Seite des Komponentenfensters. In diesem Kurs werden mehrere andere datenbankfähige Komponenten verwendet. Zunächst konzentrieren wir uns auf den minimalen Satz an Komponenten, die für den Zugriff auf eine Access-Datenbank mit ADO erforderlich sind.
Führen Sie Delphi aus und erstellen Sie eine neue Anwendung mit einem leeren Formular.
Um über ADO und Delphi auf Access-Datenbankdaten zugreifen zu können, müssen Sie Ihrem Projekt mindestens drei datenfähige Komponenten hinzufügen. Das erste ist das DBGrid der DataControls-Komponentenseite, das zum Durchsuchen von Datensätzen verwendet wird, die aus einer Tabelle oder über eine Abfrage abgerufen wurden. Die zweite ist DataSource (DataAccess-Datenzugriffsseite), die zum Verbinden des Datensatzes und der DBGrid-Komponente im Formular verwendet wird, wodurch die Realisierung, Navigation und Bearbeitung potenzieller Datensatzdaten realisiert wird. Schließlich gibt es noch ADOTable (ADO-Seite), das eine aus der ADO-Datenbank erhaltene Tabelle darstellt. Ziehen Sie sie alle per Drag-and-Drop auf das Formular (Formular), und die Komponentennamen übernehmen die Standardwerte. Das Formular sollte nun so aussehen:
Wenn Sie das Programm jetzt ausführen, werden im Grid keine Daten angezeigt – natürlich, weil wir eigentlich nicht mit der Datenbank verbunden sind. Beachten Sie einen weiteren Punkt: Nur das Raster ist sichtbar, die anderen beiden Komponenten sind nicht sichtbar.
Verbindung zwischen Komponenten
Um Daten aus der Datenbank anzuzeigen, müssen wir drei Komponenten miteinander verbinden. Nehmen Sie im Objektinspektor folgende Einstellungen vor:
DBGrid1.DataSource = DataSource1;
DataSource1.DataSet = ADOTable1;
Jetzt kommen wir zum schwierigen Teil: Um die Daten tatsächlich aus der Datenbank zu erhalten, müssen wir einen ConnectionString erstellen. Diese Zeichenfolge gibt den physischen Speicherort der Datenbank und den Zugriff darauf an. Wenn Sie auf die Schaltfläche mit den Auslassungspunkten der ConnectionString-Eigenschaft der AdoTable-Komponente doppelklicken, wird das folgende Dialogfeld angezeigt:
About
/aboutdelphi.mdb;
Um den Entwurf abzuschließen, müssen wir den Tabellennamen festlegen, auf den über die ADOTable-Komponente zugegriffen werden soll – wiederum mithilfe des Objektinspektors. ADOTable1.TableName = Anwendungen Wenn Sie Datenbankdaten zur Entwurfszeit sehen möchten, verwenden Sie die Active-Eigenschaft von ADOTable – setzen Sie sie auf True. Ha! Wenn Sie alle oben genannten Schritte ausgeführt haben, werden Sie nun feststellen, dass die Tabelle „Anwendungen“ nur einen Datensatz (Zeile) enthält. Wenn Sie die Anwendung ausführen, können Sie sogar die Daten in der Datenbank ändern. Mehr geht natürlich nicht – das ist das einfachste Beispiel für ADO, das mir einfällt. Dieser Abschnitt kann nun abgeschlossen werden. Im nächsten Kapitel besprechen wir alle von Delphi bereitgestellten ADO-Komponenten und wie sie mit den übrigen datensensitiven Komponenten kommunizieren, um eine leistungsfähigere Delphi-Datenbankanwendung zu erstellen. 22. Dezember 2002 20:14