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: SQLFunctionConverter.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.


