MySQL direct
Verbindung aufbauen
Der erste Schritt beim Arbeiten mit einem Datenbankserver ist das Aufbauen einer Verbindung. Zuvor sind aber einige Vorarbeiten nötig:
Folgende MySQLdirect-Units müssen in den Interface-Abschnitts der Hauptunit unseres Projekts eingebunden werden:
uses ..., umysqlvio, uMysqlCT, uMysqlClient, uMysqlHelpers;
Direkt danach noch vor den Typdeklarationen muss die Include-Datei, die sich im Download der Units befindet, eingebunden werden:
{$I mysqlinc.inc}
Da es sich hier wie gesagt nicht um Komponenten handelt, sind wir selbst für das Erzeugen und Freigeben zuständig. Im private-Abschnitt von TForm1 deklarieren wir dafür folgende Objektreferenzen:
private FMysql: TMysqlClient; FResult: TMysqlResult;
FMySql soll auf das Objekt verweisen, das für den Datenbankzugriff benötigt wird. FResult ist für die Ergebnismenge von Abfragen zuständig.
Im OnCreate-Ereignis des Hauptfenster wird FMySql dann erzeugt:
procedure TForm1.FormCreate(Sender: TObject); begin FMysql := TMysqlClient.create; end;
Bei Programmende muss das Objekt natürlich auch wieder freigegeben werden:
procedure TForm1.FormDestroy(Sender: TObject); begin FMysql.Free; if FResult<>nil then FResult.free; end;
Kommen wir nun zum Herstellen der Verbindung zum MySQL-Server. Dafür müssen einige Parameter gesetzt werden:
procedure TForm1.Button1Click(Sender: TObject); begin // Eigenschaften setzen FMysql.Host := 'localhost'; FMysql.port := 3306; FMysql.user :=' user1'; FMysql.password := '1234'; FMysql.UnixSocket := ''; FMysql.Db := 'test'; // Datenbank auf dem Server FMysql.UseNamedPipe := false; FMysql.UseSSL := false; FMysql.Compress := true; FMysql.TrySockets := false; if FMysql.Connect then ShowMessage('Verbindung aufgebaut') else ShowMessage('Fehler beim Verbinden: '+FMysql.LastError); end;
Und wenn wir die Verbindung wieder beenden wollen, muss ein Button mit folgendem Code existieren:
procedure TForm1.Button2Click(Sender: TObject); begin if FMysql.Connected then FMysql.close else ShowMessage('Nicht verbunden!'); end;