Füllen Sie einige Daten aus
Um einige „Dummy“-Daten zu haben, füllen Sie die folgenden 4 Datensätze in der Typtabelle aus: „Spiel“, „Datenbank“, „Internet“, „Grafik“ (Grafik)). Diese Werte werden bei der Auswahl des in der Anwendungstabelle (Anwendungen) gespeicherten Anwendungstyps verwendet. Fügen Sie als Nächstes eine Zeile in der Autorentabelle (Autoren) hinzu: „Delphi Guide“, „[email protected]“, „http://delphi.about.com“. Fügen Sie abschließend eine Zeile zur Anwendungstabelle hinzu: „Zoom“, „Zooming the Destop“, „Delphi Guide“, „Graphics“, 10, 0, 20.02.2001, und stellen Sie sicher, dass das letzte Feld (Foto) leer ist.
Wie man mit diesen „leeren“ Datenbanken umgeht... wird in den restlichen Kapiteln dieses Tutorials erklärt.
Kapitel 2 Mit ADO eine Verbindung zur Datenbank herstellen? BDE?
Abschnitt 1 Delphi-Datenbankkonnektivität
Wie im vorherigen Kapitel gezeigt, ist eine Datenbank eine Sammlung einer oder mehrerer Tabellen, die Daten in einem strukturierten Format speichern. Diese Tabellen enthalten Daten in Form von Zeilen und Spalten. Wenn eine Datenbank eine oder mehrere Tabellen enthält, enthalten die Tabellen normalerweise diskrete, aber verwandte Daten. MS Access, Interbase und SQL Server verwenden eine Datei, um eine vollständige Datenbank darzustellen (MS Access ist eine *.mdb-Datei). Paradox und dBase hingegen werden durch separate Tabellen und Dateien definiert, die Indizes und Tabellenbeziehungen darstellen. Alle Dateien, die die Paradox-Datenbank beschreiben, werden normalerweise in einem Verzeichnis gespeichert. Natürlich kann Delphi in beide Richtungen funktionieren.
Mit Delphi können wir eine Verbindung zu verschiedenen Datenbanktypen herstellen: lokale Datenbanken oder C/S-Datenbanken (Remote-Server). Die lokale Datenbank wird auf einem lokalen Laufwerk oder im lokalen Netzwerk gespeichert. Der Remote-Datenbankserver befindet sich normalerweise auf einem Remote-Computer. Zu den Arten lokaler Datenbanken gehören Paradox, dBase und MS Access. Die C/S-Datenbank umfasst MS SQL Server, Interbase oder Oracle.
Lokale Datenbanken werden oft als Single-Tier-Datenbanken bezeichnet. Eine einstufige Datenbank reagiert sofort auf alle Änderungen – Bearbeiten von Daten, Einfügen von Datensätzen oder Löschen von Datensätzen. Bei einer einstufigen Datenbank sind die Datenmenge, die die Tabelle aufnehmen kann, und die Anzahl der Benutzer, die die Anwendung unterstützen kann, begrenzt. Wenn die Datenbank Informationen über komplexe Beziehungen zwischen mehreren Tabellen enthält oder die Anzahl der Clients zunimmt, müssen Sie eine zwei- oder mehrschichtige Anwendung verwenden. Die Clientanwendung wird auf dem lokalen Computer ausgeführt. Der Anwendungsserver wird normalerweise auf dem Server ausgeführt, und die Datenbank kann sich auf einem anderen Server befinden. Die Idee hinter einer mehrschichtigen Architektur besteht darin, dass das Clientprogramm sehr klein sein kann, da der Anwendungsserver einen Großteil der Arbeit erledigen kann. Dadurch können Sie sogenannte Thin-Client-Anwendungen schreiben.
Wenn wir eine Datenbankanwendung in Delphi schreiben, müssen wir eine Datenbank-Engine verwenden, um auf die Daten in der Datenbank zuzugreifen. Mit Datenbanken können Sie sich darauf konzentrieren, auf welche Daten Sie zugreifen, und nicht darauf, wie Sie darauf zugreifen. Seit der ersten Version stellt Delphi Datenbankentwicklern BDE (Borland Database Engine) zur Verfügung. Zusätzlich zu BDE bietet Delphi ab der fünften Edition Unterstützung für die ADO-Datenbankschnittstelle von Microsoft.
Dieses Tutorial konzentriert sich auf die Entwicklung einschichtiger Datenbankanwendungen mit der lokalen MSAccess-Datenbank.
Abschnitt 2 Borland Database Engine (BDE)
BDE ist die gemeinsame Datenzugriffsschicht für alle Borland-Produkte – einschließlich Delphi und C++Builder. BDE ist eine Sammlung von DLLs (Dynamic Link Libraries) und Tools. Das Schöne daran ist, dass die gesamte Datenverarbeitung für den Entwickler transparent ist. BDE wird mit einer Reihe von Treibern geliefert, die Ihrer Anwendung die Kommunikation mit vielen verschiedenen Datenbanktypen ermöglichen. Diese Treiber konvertieren übergeordnete Datenbankbefehle (z. B. Öffnen oder Posten) und Aufgaben (Datensatzsperre oder SQL-Strukturen) in spezifische Befehle, die für einen speziellen Datenbanktyp erforderlich sind: Paradox, dBase, MS Access oder eine beliebige ODBC-Datenquelle. Die BDE API (Application PROgramming Interface) enthält mehr als 200 Prozeduren und Funktionen, die in der BDE-Einheit verfügbar sind. Glücklicherweise müssen Sie diese Programme fast nie direkt aufrufen. Stattdessen verwenden Sie BDE über die Datenzugriffskomponente der VCL (Übersetzer: Visual Component Library) – die Datenzugriffsseite (Datenzugriff) im Komponentenbereich. Um auf eine bestimmte Datenbank zuzugreifen, muss eine Anwendung lediglich den Datenbankalias (Alias) kennen, um auf alle Daten in dieser Datenbank zugreifen zu können. Der Alias wird im BDE-Administrator erstellt und gibt die Laufwerksparameter und den Datenbankspeicherort an. BDE wird mit einer Reihe von Datenbanktreibern geliefert, die auf eine Vielzahl verschiedener Arten von Datenelementen zugreifen können. Zu den Standard-BDE-Treibern gehören Paradox, dBase, MS Access und ASCII-Text. Natürlich kann jeder ODBC-Treiber auch von BDE über den ODBC-Administrator verwendet werden.
Delphi-Anwendungen, die BDE für den Zugriff auf Datenbanken verwenden, erfordern die Verteilung von BDE für die Anwendung. Wenn Sie die BDE einer Anwendung konfigurieren, müssen Sie InstallShield Express oder ein anderes Borland-spezifisches Installationsprogramm verwenden.
BDE als Datenbank-Engine hat seine Vor- und Nachteile. Warum und wann Sie BDE-Methoden anstelle bestimmter Nicht-BDE-Techniken verwenden sollten (oder nicht), wird in diesem Tutorial jedoch nicht erläutert.
Da in diesem Tutorial ADO/MSAccess behandelt wird, konzentriert sich der Rest des Tutorials auf diesen Nicht-BDE-Ansatz für Datenbanken.
22. Dezember 2002