MySQL mit ZeosLib
Datenbanken/Tabellen erstellen
Nun kommst du das erste Mal mit der MySQL-Datenbank in Kontakt. In diesem Kapitel lernst du, wie du eine Datenbank und die darin enthaltenen Tabellen anlegst. Wir verwenden dabei die Datenbanksprache SQL.
Datenbank anlegen
Bevor eine Tabelle angelegt werden kann, muss eine Datenbank existieren. Den Namen kannst du dir dabei aussuchen. Wie bei Dateien darf keine zweite Datenbank mit diesem Namen existieren. Starte dazu aus dem My-SQL/bin-Verzeichnis die Datei winmysqladmin.exe und wechsel dort auf die Registerreiter Databases. Per Popupmenu lässt sich dor eine Datenbank erstellen.
Verbindung zum Server herstellen
Zunächst muss man eine Verbindung zum MySQL-Server herstellen. Dies geht über die Komponente TZMySqlDatabase. Die Verbindungsdaten werden in die entsprechenden Edit-Felder eingegeben. Du benötigst die Adresse des Servers (läuft dieser auf deinem Rechner lautet sie localhost) und einen Benutzernamen, sowie ein Passwort. In das Datenbank-Feldmusstdu den Namen der oben angelegten Datenbank angeben. Schreibe in das OnClick-Ereignis des Buttons, der die Tabelle erstellt folgendes:
dbMain.Host:=edServer.Text; //Server dbMain.Login:=edLogin.Text; //Benutzername dbMain.Password:=edPasswort.Text; //Passwort dbMain.Database:=edDB.Text; //Name der Datenbank dbMain.Connected:=True; //Verbindung herstellen try finally dbMain.Connected:=False; end;
Mit diesen Zeilen übergibst du der Komponente die Login-Daten und stellst eine Verbindung zum Server her. Noch passiert hier gar nichts. Diese Procedure soll später die Tabelle für die Adress-Daten erstellen.
Tabellen erstellen
Nun wird über einen SQL-Befehl die Tabelle erstellt. Die Tabelle soll den Namen adressbuch tragen. Über die Struktur der Tabelle haben wir uns im letzten Kapitel schon Gedanken gemacht. Zuständig für das Erstellen von Tabellen ist der SQL-Befehl CREATE TABLE. Es folgt der Name der Tabelle und die Namen und Typen der Felder. Der vollständige SQL-Befehl sieht folgendermaßen aus:
CREATE TABLEadressbuch
(id
INT NOT NULL AUTO_INCREMENT PRIMARY KEY,vorname
TEXT NOT NULL,name
TEXT NOT NULL,adresse
TEXT NOT NULL,wohnort
TEXT NOT NULL,plz
INT NOT NULL );
Der Parameter AUTO_INCREMENT bedeutet, dass der Wert des Feldes id bei jedem Datensatz automatisch um 1 erhöht wird. PRIMARY KEY steht für Primärschlüssel. Ein Primärschlüssel ist ein eindeutiger Index. NULL ist vergleichbar mit einem Platzhalter.
Natürlich können wir in unseren Delphi-Quelltext keine direkten SQL-Statements eingliedern. Dies geschieht über die Komponente TZMySqlQuery. Über die Eigenschaft SQL, die vom Typ TStrings ist, nimmt sie SQL-Befehle an. Die Methode ExecSql führt den SQL-Quelltext schließlich aus.
Schreibe zwischen den try-finally-Block aus der obigen Procedure folgende Zeilen Code:
qrMain.SQL.Text:='CREATE TABLEadressbuch
('+ 'id
INT NOT NULL AUTO_INCREMENT PRIMARY KEY,'+ 'vorname
TEXT NOT NULL,'+ 'name
TEXT NOT NULL,'+ 'adresse
TEXT NOT NULL,'+ 'wohnort
TEXT NOT NULL,'+ 'plz
INT NOT NULL'+ ');'; qrMain.ExecSql;
Hinweis: Beachte den Unterschied zwischen den verschiedenen Hochkommas!
Wie du siehst, handelt es sich bei SQL-Statements immer um Strings. Auch wenn du einen Integerwert hinzufügen möchtest, musst du mit Strings arbeiten.