HeidiSQL ist ein äußerst erfolgreiches Open-Source-Datenbankverwaltungstool. Abgesehen davon, dass es bei der Verwaltung von MySQL-, SQL Server-, PostgreSQL- und SQLite-Datenbanken äußerst nützlich ist, ist es auch Open Source – und dieser Quellcode ist in Delphi geschrieben. Wir haben uns zuvor einen kurzen Überblick darüber gegeben, aber dieses Mal haben wir nur an der Oberfläche dieses wunderbar kunstvollen Beispiels der Delphi-Programmierung in ihrer besten Form gekratzt. Der Code selbst ist vollgepackt mit wirklich großartigen Techniken. Schauen wir uns das genauer an.
Table of Contents
Dinge, die Sie benötigen, um den HeidiSQL-Code zu kompilieren
- Sie benötigen RAD Studio Delphi 10.4 oder höher. Ich habe Delphi 10.42 verwendet.
- Es ist einfacher, wenn Sie eine Art von Git-Quellcodeverwaltungsclient installiert haben. Ich habe meinen Lieblings-GitHub-Desktop-Client verwendet.
- Die HeidiSQL-Quelle basiert auf zwei benutzerdefinierten Komponenten – die Quelle dafür ist im HeidiSQL-Quelldownload enthalten.
- Sie sollten auch madExcept herunterladen und installieren.
madExcept installieren
Wenn Sie noch nicht auf madExcept gestoßen sind, bevor Sie etwas verpassen! Es ist ein wirklich großartiges Werkzeug zum Abfangen und Melden von Programmausnahmen, die auftreten, während Ihr Programm ausgeführt wird. Die Website erklärt ausführlicher, aber ich kann es nur empfehlen.
- Gehen Sie zu http://www.madshi.net/madExceptDescription.htm
- Laden Sie das Installationsprogramm herunter und führen Sie es aus
- Stellen Sie sicher, dass Sie madExcept v5. Das Installationsprogramm ist ein wenig verwirrend – klicken Sie auf Version 5 und es wird zur Installation ausgewählt (die Standardeinstellung ist nicht, Version 4 oder 5 zu installieren, was mich in der Vergangenheit verwirrt hat!)
Wenn es richtig installiert ist, wird Ihrem RAD Studio-Tools-Menü ein zusätzliches Menüelement hinzugefügt
Den HeidiSQL-Quellcode abrufen
Gehen Sie auf die HeidiSQL-Site und klicken Sie auf die Schaltfläche „Download Source“. Dadurch gelangen Sie zu folgendem Link: https://github.com/HeidiSQL/HeidiSQL
Installieren der erforderlichen Drittanbieterkomponenten
HeidiSQL setzt auf zwei zusätzliche Komponenten. Beachten Sie, dass beide Komponenten sehr beliebt sind, stellen Sie also sicher, dass Sie sie nicht bereits installiert haben. Wenn Sie sie nicht installiert haben, folgen Sie den Anweisungen unten. Die erforderlichen Elemente sind:
- SynEdit, um einen durch Syntax hervorgehobenen Abfrageeditorbereich bereitzustellen.
- VirtualTreeView, um eine Reihe von sehr schnellen UI-Ansichten im Baum- und Listenansichtsstil zu implementieren.
SynEdit installieren
Navigieren Sie zum ./HeidiSQL/components/synedit/Packages/Delphi10.4/SynEdit.groupproj
Projekt und laden Sie es. Klicken Sie mit der rechten Maustaste und kompilieren Sie das SynEdit_R
Projekt, und klicken Sie dann mit der rechten Maustaste und wählen Sie „Installieren“ für das SynEdit_D
Design-Time-Paket.
Installieren von VirtualTreeView
Navigieren Sie zu ./HeidiSQL/components/virtualtreeview/packages/Delphi10.4/VirtualTrees.groupproj
und laden Sie es. Klicken Sie mit der rechten Maustaste und kompilieren Sie das VirtualTreesR
Laufzeitpaket. Klicken Sie nun mit der rechten Maustaste und wählen Sie „Installieren“ für das VirtualTreesD
Design-Time-Paket.
Kompilieren der erforderlichen Ressourcendateien (.res)
Es gibt eine kleine Lücke in den Schritten, die ich beim Kompilieren von HeidiSQL aus dem Quellcode gesehen habe. Es gibt ein paar .rc-Ressourcendateien für Dinge wie Symbole und Schriftarten, und es schien nirgendwo zu geben, dass sie kompiliert werden müssen. Ich habe sie vielleicht übersehen (ich habe versucht, die verschiedenen Gruppenprojekte zu kompilieren), in diesem Fall lass es mich in den Kommentaren wissen und ich werde diesen Beitrag mit der Korrektur aktualisieren – aber bis dahin tun Sie Folgendes:
- Navigieren Sie zum
.HeidiSQL
Stammquellordner. Darin befindet sich eine Batch-Datei namens „build-res.bat“ – führen Sie diese Datei aus. Es sollte ohne Fehler abgeschlossen werden. - Navigieren Sie nun zum Ordner .HeidiSQLsourcevcl-styles-utils. Darin befindet sich eine Datei namens „CompileResources.bat“
- Bearbeiten Sie diese Datei mit einem Texteditor und entfernen Sie die Pfade am Anfang der Zeile „brcc32.exe“, sodass nur „
brcc32.exe AwesomeFont.rc
“ steht. - Speichern Sie nun diese Batch-Datei und führen Sie sie aus.
- Bearbeiten Sie die zweite Datei mit dem Namen „CompileResources_zip.bat“ auf die gleiche Weise und entfernen Sie den Pfad; dann speichern und ausführen.
- Beide sollten den Befehlszeilencompiler von Borland Resource ausführen und die vom Hauptprojekt benötigten .res-Dateien erstellen.
Öffnen und Kompilieren des HeidiSQL Delphi-Quellcodes
Richtig, wir sind bereit, das HeidiSQL-Hauptprojekt zu öffnen und sollten es ohne Fehler kompilieren können!
Navigieren Sie zum Projekt ./HeidiSQL/packages/Delphi10.4
„ heidisql.dproj
“ und öffnen Sie es .
Es sollte ohne Fehler geöffnet werden.
Wenn Sie CTRL+F9
auf Build klicken, wird der Quellcode erstellt und Ihre persönliche Kopie der HeidiSQL-exe erstellt, die Sie im Ordner .HeidiSQLout finden sollten
Kleine Juwelen im HeidiSQL-Quellcode gefunden
Der HeidiSQL Delphi-Code ist ein Füllhorn an interessanten Methoden, kleinen Tricks und Techniken.
Beispielsweise wurde kürzlich die Unterstützung für benutzerdefinierte Stile eingeführt. Die Stile werden mithilfe einer .res-kompilierten Ressource in die App eingebettet. Wenn Sie zur Quelle des Projekts navigieren (Hauptmenü, Projekt, Quelle anzeigen). Scrollen Sie nach unten und Sie sehen die Zeile:{$R ....resstyles.RES}
Es verwendet immer noch den TStyleManager, um diese Stile sicher zu laden, aber sie werden aus der internen Ressource geladen. Dies hat den Vorteil, dass die Stildateien nicht mit der vom Endbenutzer kompilierten Anwendung geliefert werden müssen, der Nachteil ist jedoch, dass die App auf die eingebettete Auswahl beschränkt ist. Ich persönlich bevorzuge es, wenn ich dies selbst mache, nach externen Stildateien als Teil des Prozesses zu suchen, der es Leuten ermöglicht, neue Stile bereitzustellen, indem sie sie einfach in einen bestimmten Ordner legen, den mein Code scannt und in die Liste lädt. Trotzdem neigt der HeidiSQL-Code dazu, die Dinge auf seine eigene Weise zu tun und zu versuchen, so schlank wie möglich zu sein, was meiner Meinung nach ein bewundernswerter Ansatz ist.
HeidiSQL ist mehrsprachig
HeidiSQL kann mit mehreren der wichtigsten relationalen Datenbanksysteme „sprechen“. Bemerkenswert ist, dass dies ohne die Verwendung eines der gängigen Datenbankkomponentensätze wie FireDAC, AnyDAC, MyDAC usw. geschieht.
Wenn wir zur Unit dbConnection und dann zur CreateConnection-Methode navigieren, sehen wir den folgenden Code:
Dies ist der entscheidende Punkt, an dem HeidiSQL so geschickt seine Zunge über die verschiedenen SQL-Dialekte drehen kann.
Von da an führt HeidiSQL SQL-Abfragen mit sehr geringem Variationsbedarf aus. Es ist ein bemerkenswert knapper Code, der einen hervorragend prägnanten Programmierstil überlagert. Entwickler Ansgar Becker kennt sich wirklich aus. Ich habe immer gesagt, dass Sie, wenn Sie den Code eines anderen Programmierers lange genug lesen, wirklich eine Vorstellung von dem Verstand bekommen, der ihn erstellt hat.
Andere versteckte Schätze
Das Durchlaufen der verschiedenen Elemente des HeidiSQL-Codes offenbart viele andere Freuden. Es gibt einen Logging-Bereich, der Nutzungs- und Umgebungsstatistiken aufzeichnet und über ein PHP-Skript an einen externen Webserver zurückmeldet. Optional kann die App die ausgeführten Abfragen auch in einer lokalen Protokolldatei protokollieren.
Es gibt auch einen benutzerdefinierten Updater, der nach einer automatischen Aktualisierung der ausführbaren Datei suchen und diese ausführen kann. Weitere Informationen finden Sie in der Einheit „UpdateCheck“.
HeidiSQL verfügt auch über eine hervorragende Exportfunktion, mit der Benutzer die Ergebnisse ihrer SQL-Abfragen in alle möglichen Formate exportieren können, einschließlich des etwas esoterischen LaTex und WikiMarkup. Diese Möglichkeit, Abfragen auszuführen, um die Daten zu extrahieren, fast unabhängig von der SQL-Datenbankserver-Technologie, sie in einer benutzerfreundlichen Ansicht anzuzeigen, zu transformieren und in etwas anderes zu exportieren, hat HeidiSQL sehr schnell zum goto DB-Manager-Tool für viele gemacht Menschen.
Das HeidiSQL-Projekt nimmt Spenden auf seiner offiziellen Webseite hier an: https://www.heidisql.com/donate.php – es ist definitiv ein verdientes Delphi-Projekt.
RAD Studio Delphi ist die Kraft hinter einigen der weltweit beliebtesten Softwares – probieren Sie es selbst aus und sehen Sie, was es für Sie tun kann.