Ein kleines Windows-Tool in Delphi/VCL zum schnellen Vorbereiten von SQL-Funktionen & SQL-Prozeduren für Tests, Debugging und manuelle Ausführung.
Der Converter liest die Parameter aus einem CREATE FUNCTION- oder CREATE PROCEDURE-Header, übernimmt sie in ein editierbares Grid und erzeugt daraus einen lauffähigen SQL-Block ab BEGIN inklusive DECLARE- und SET-Anweisungen.
- Extrahiert
IN,OUTundINOUT-Parameter aus dem SQL-Header - Übernimmt Bezeichnung, Datentyp, Default-Wert und Kommentare in ein Grid
- Erlaubt manuelle Anpassungen von Parameterwerten vor der Ausgabe
- Fügt automatisch
DECLARE- undSET-Blöcke in den SQL-Body ein - Kann
RETURNsowieOUT/INOUT-Parameter optional in einSELECTumwandeln - Kann Kommentar-Marker wie
//***in SQL-Kommentare--konvertieren - Öffnet die generierte Ausgabe direkt im konfigurierten Editor
Das Projekt ist praktisch, wenn bestehende SQL Anywhere / ASA-Funktionen oder -Prozeduren schnell in einen testbaren Ausführungsblock überführt werden sollen, ohne Parameter jedes Mal von Hand als Variablen vorzubereiten.
- SQL-Definition in die linke Eingabe einfügen oder per Datei laden.
- Mit
Konvertdie Parameter analysieren lassen. - Werte im mittleren Grid anpassen.
- Mit
Aktualisierenden Ausgabe-SQL-Block erzeugen. - Die Ausgabe speichern oder direkt im Editor öffnen.
Unterstützt werden unter anderem:
IN,OUTundINOUT- Datentypen wie
VARCHAR,LONG VARCHAR,INTEGER,NUMBERIC,DATE, ... - Inline-Kommentare mit
//,/*oder--
Die generierte Ausgabe beginnt beim BEGIN-Block der übergebenen SQL-Definition.
Der Converter:
- fügt neue
DECLARE-Anweisungen für die Parameter ein - setzt vorhandene Werte per
SET - ergänzt bei Bedarf eine
SELECT-Rückgabe fürRETURNundOUT-Parameter
Es können mehrere Editoren hinterlegt werden, wie z.B.:
- Notepad
- Notepad++
- Visual Studio Code
Zusatzparameter für den Editor-Aufruf lassen sich ebenfalls im Parameter-Edit speichern.
Aus einer Definition wie:
CREATE FUNCTION %PROC% (IN @Kun_Nummer INTEGER DEFAULT NULL) // Kunde
RETURNS VARCHAR(7)
BEGIN
DECLARE varResult VARCHAR(7);
RETURN varResult;
END;wird eine Ausgabe in dieser Art erzeugt:
BEGIN
DECLARE varResult VARCHAR(7);
--Start: DECLARE der Parameter
DECLARE @Kun_Nummer INTEGER;
--Ende: DECLARE der Parameter
--Start: SET der Parameter
SET @Kun_Nummer = NULL;
--Ende: SET der Parameter
SELECT varResult;
END;Die genaue Ausgabe hängt von den gesetzten Optionen und den eingetragenen Parameterwerten ab.
- Links: SQL-Eingabe
- Mitte: Erkannte Parameter inklusive Werte und Kommentare
- Rechts: Ausführbare SQL-Anweisung
Konvert: Liest den Header ein und füllt das GridAktualisieren: Übernimmt die Grid-Werte in die AusgabeIm Editor öffnen: Speichert die Ausgabe in eine Datei und öffnet diese im konfigurierten Standard-Editor
F9: Eingabe konvertierenF5: Ausgabe aktualisierenF1: Aktuelle Spaltenbreite an Inhalt anpassenEntf: Aktuelle Grid-Zelle leerenEnter: Im Grid zur nächsten Zeile springen
Die Anwendung speichert ihre Einstellungen standardmäßig unter:
%APPDATA%\SQL Function Converter\
Verwendete Dateien:
Fx_Settings.inifür Fensterzustand, Spalten, Theme und KonvertierungsoptionenFx_Editors.inifür Editor-Profile und den aktiven Ausgabe-EditorFx_Output.sqlals generierte Ausgabedatei für den Editor-AufrufFx_EditorTest.sqlals generierte Ausgabedatei für den Editor-Test
Falls das Verzeichnis unter %APPDATA% nicht angelegt werden kann, verwendet die Anwendung stattdessen das Verzeichnis der EXE.
.
|- SQLFunctionConverter.dpr Projektstart
|- Main.pas / Main.dfm Hauptfenster und Konvertierungslogik
|- EditorSettings.pas / .dfm Verwaltung der Ausgabe-Editoren
|- ConverterConst.pas Konstanten und Konfigurationsschlüssel
|- Misc/Test-Functions/ Beispiel-/ und Test-SQLs
`- Release/SQLFunctionConverter.exe Vorcompilierte EXE
- Windows
- Embarcadero Delphi / RAD Studio mit VCL
- Zielplattform:
Win32
Das Projekt ist als klassische VCL-Desktop-Anwendung aufgebaut.
Projektdatei:
SQLFunctionConverter.dproj
Zum Bauen einfach in Delphi/RAD Studio öffnen und als Win32 kompilieren.
Oder direkt die Release-Version aufrufen: SQL Function Converter.exe
- Das Tool ist auf SQL-Header mit klassischem
CREATE FUNCTION- bzw.CREATE PROCEDURE-Aufbau ausgelegt - Die Erkennung basiert auf String-Verarbeitung und Regex, nicht auf einem vollständigen SQL-Parser
- Sehr spezielle oder ungewöhnlich formatierte Definitionen können daher Nacharbeit im Grid erfordern
Unter Misc/Test-Functions liegen mehrere Beispielskripte, mit denen sich die Konvertierung schnell ausprobieren lässt.
Diese Dokumentation wurde mit Unterstützung von ChatGPT erstellt.
Die Inhalte wurden anschließend geprüft, angepasst und an das Projekt angeglichen.


