Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeCodeDelphiRAD Studio

Extrahieren, Transformieren, Laden – Die Magie hinter HeidiSQL

heidisql hero image

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.

screenshot 2021 05 23 195219

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.
screenshot 2021 05 23 122652

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.

  1. Gehen Sie zu http://www.madshi.net/madExceptDescription.htm
  2. Laden Sie das Installationsprogramm herunter und führen Sie es aus
  3. 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!)

screenshot 2021 05 23 125058

Wenn es richtig installiert ist, wird Ihrem RAD Studio-Tools-Menü ein zusätzliches Menüelement hinzugefügt

screenshot 2021 05 23 165604

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

screenshot 2021 05 23 122534

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.groupprojProjekt 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.groupprojund 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)

screenshot 2021 05 23 131334

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 .HeidiSQLStammquellordner. 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+F9auf Build klicken, wird der Quellcode erstellt und Ihre persönliche Kopie der HeidiSQL-exe erstellt, die Sie im Ordner .HeidiSQLout finden sollten

screenshot 2021 05 23 173020
screenshot 2021 05 23 173158

Kleine Juwelen im HeidiSQL-Quellcode gefunden

Der HeidiSQL Delphi-Code ist ein Füllhorn an interessanten Methoden, kleinen Tricks und Techniken.

screenshot 2021 05 23 174217

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:

screenshot 2021 05 23 175158

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

screenshot 2021 05 23 183918

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.

Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES