Moin!
Es ging mir schon geraume Zeit auf den Senkel, dass es keine
wirklich einfache MySQL-Anbindung für Delphi gibt, zumindest habe ich keine gefunden.
Es gibt zwar Ansätze wie Sand am Meer, aber meistens war das viel zu viel Aufwand (ich brauche keine Anbindung an die DB-Komponenten von Delphi, die GUI-DB-Controls sind eh hässlich oder nicht funktional geeignet) oder man verzweifelt schon an der Installation (ich habe die Zeos-Kompos zwar irgend wann installiert gekriegt, aber ich bezweifle, dass ich das nochmal schaffe...
).
Eigentlich wäre ich schon zufrieden, wenn ich ein SQL-Kommando absetzen könnte und darauf hin ein String-Array mit dem Ergebnis geliefert bekomme.
Die MySQL-Client-Bibliothek (libmysql.dll) stellt schon alles bereit, was man braucht, es ist nur ein Klassenmodell für Delphi nötig, das die Bibliothek (simpel) kapselt.
Hier ist sie also, die Komponente TMySQLConnection, die eben genau das tut:
- Schlanke Komponente, einfache Funktion/API
- Kann einfach in die IDE installiert werden -> Komponente auf´s Formular ziehen, Eigenschaften einstellen, fertig
- Benutzung ohne Installation zur Laufzeit genau so einfach möglich
- SQL-Anweisungen sind synchron (GUI-blockierend) und asynchron (per VCL-Thread) ausführbar
- Ergebnis-Mengen sind als Delphi-Objekt gekapselt (automatische Speicherverwaltung)
Im Anhang befindet sich das Archiv mit folgenden Dateien:
- MySQLcon.pas
Der Quelltext der Komponente und deren Hilfsklassen
- MySQLcon.dcr
Icon für die IDE
- ExeImageAvail.pas
Eine Unit-Version dieses FAQ-Beitrags
- mysql.pas
Die Delphi-Version der MySQL-Header
- MySQLdemo.exe
Demo-Programm, um einen Test ohne Installation der Komponente bzw. Compilieren der Demo-Anwendung machen zu können
- DemoSource
Ordner mit den Quelltext-Dateien der Demo-Anwendung
Installationsanleitung (für D7(pro)):
- Die drei .pas-Dateien und die .dcr-Datei aus dem Wurzelverzeichnis des Archives in den \lib-Ordner der Delphi-Installation kopieren (normalerweise C:\Programme\Borland\Delphi7\lib)
- Delphi-IDE starten, Menü Datei -> Alle schließen anklicken (falls ein Default-Projekt angelegt wurde)
- Menü Komponente -> Packages installieren anklicken
- Eintrag Borland Anwenderkomponenten auswählen, dann Bearbeiten anklicken, die Frage "Soll dieses Dialogfenster geschlossen und <Pfad>\Lib\dclusr.dpk geöffnet werden?" mit Ja beantworten
- Im Fenster des Packages erst den Button Hinzu, dann auf Durchsuchen klicken
- Die Datei MySQLcon.pas aus dem \lib-Ordner der Delpih-Installation auswählen und mit Öffnen bestätigen
- Dann den Button Compil. im Package-Fenster anklicken, das Packe wird neu übersetzt (evtl. Hinweise entsprechend bestätigen; ggfs. werden zwei Warnungen ausgegeben, dass die beiden zusätzlichen Units implizit mit in das Package aufgenommen wurden, das ist OK so)
- Fertig, IDE schließen (Package speichern, falls beim Beenden gefragt)
- IDE wieder öffnen, jetzt sollte die neue Komponente im (evtl. neu angelegten) Register MySQL zur Verfügung stehen
Es muss selbstverständlich auch die libmysql.dll in einer möglichst aktuellen Version in einem System-Pfad (im Zweifel nach <WinDir>\System32 kopieren) zur Verfügung stehen. Diese MySQL-Client-Bibliothek kann man aus der aktuellen MySQL-Distribution entnehmen oder z.B. aus dem
xampp-Paket.
Zur Verwendung einfach mal in die Demo schauen, da werden sie geholfen. Hier noch ein kurzer Schnipsel, wie das grundsätzlich aussieht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var MySQLResult: TMySQLResult; begin MySQLResult := TMySQLResult.Create(MySQLConnection,'SELECT * FROM sometable'); try MySQLResult.Execute; MySQLResult.Dump(Memo1.Lines); finally MySQLResult.Free; end; |
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.