Implizite SQL-Anweisungen anzeigen
EGL erstellt immer dann implizite SQL-Anweisungen, wenn Sie eine EGL-Datenzugriffsanweisung (z. B. add oder get) verwenden, die als Ziel eine SQL-Satzvariable angibt. Diese Funktion ermöglicht Ihnen das Schreiben von Funktionen, die auf eine relationale Datenbank zugreifen, auch wenn Sie über keinerlei SQL-Kenntnisse verfügen. Ferner können Sie SQL-Standardcode generieren, der dann angepasst werden kann.
EGL kann auch eine Anweisung DEFAULT SELECT anzeigen, die auf einer SQL-Datensatzdefinition basiert.
Anweisung DEFAULT SELECT
- SQL abrufen
- Wenn Sie gerade einen Datensatz definieren, wird EGL über diese Option angewiesen, die Datensatzdefinition basierend auf den Feldern in der Datenbanktabelle zu erstellen. Siehe SQL-Tabellendaten abrufen.
- DEFAULT SELECT anzeigen
- Über diese Option wird ein Fenster mit der SQL-Anweisung SELECT geöffnet, die alle Informationen im aktuellen Datensatz zurückgibt. Zum Kopieren heben Sie den Inhalt des Fensters hervor und drücken Sie STRG+C.
- DEFAULT SELECT auswerten
- Diese Option vergleicht die Informationen in der Anweisung SELECT mit der Struktur der referenzierten SQL-Datenbank und stellt sicher, dass eine solche Abfrage ordnungsgemäß ausgeführt wird.
Implizite SQL-Anweisungen
Das Gegenteil einer impliziten SQL-Anweisung ist eine eingebettete SQL-Anweisung. Dabei fügen Sie im Rahmen einer EGL-E/A-Anweisung, die von einer #sql-Direktive eingeführt wird, expliziten SQL-Code ein. Einzelheiten zur #sql-Syntax finden Sie in sql (Direktive).
record CustomerRecord type SQLRecord
{tableNames = [["ADMINISTRATOR.CUSTOMER", "L1"]],
keyItems = [customerNumber]}
customerNumber STRING {column="C_NUMBER", maxLen=6};
customerName STRING {column="C_NAME", isSQLNullable=yes, maxLen=25};
customerAddr1 STRING {column="C_ADDR1", isSQLNullable=yes, maxLen=25};
customerAddr2 STRING {column="C_ADDR2", isSQLNullable=yes, maxLen=25};
customerAddr3 STRING {column="C_ADDR3", isSQLNullable=yes, maxLen=25};
customerBalance MONEY {column="C_BALANCE", isSQLNullable=yes};
end
- Hinzufügen
- Diese Option konvertiert impliziten SQL-Code in eingebetteten SQL-Code und fügt diesen
zum Programm hinzu. Die Option 'Hinzufügen' konvertiert die einfache E/A-Anweisung get
myCustomer in Folgendes:
get myCustomer with #sql{ select C_NUMBER, C_NAME, C_ADDR1, C_ADDR2, C_ADDR3, C_BALANCE from ADMINISTRATOR.CUSTOMER L1 where C_NUMBER = :myCustomer.customerNumber }; - Mit Into hinzufügen
- Diese Option ist mit der Option 'Hinzufügen' vergleichbar; für die Feldnamen in der
EGL-Datensatzvariablen wird hier allerdings eine Klausel EGL INTO eingefügt. Dies ist nützlich, wenn Sie nur bestimmte Felder
aktualisieren möchten; die Feldnamen, die nicht aktualisiert werden sollen, können aus den Klauseln
into und select entfernt werden:
get myCustomer into myCustomer.customerNumber, myCustomer.customerName, myCustomer.customerAddr1, myCustomer.customerAddr2, myCustomer.customerAddr3, myCustomer.customerBalance with #sql{ select C_NUMBER, C_NAME, C_ADDR1, C_ADDR2, C_ADDR3, C_BALANCE from ADMINISTRATOR.CUSTOMER L1 where C_NUMBER = :myCustomer.customerNumber }; - Anzeigen
- Mit dieser Option kann der implizite SQL-Code angezeigt werden, es wird allerdings nichts hinzugefügt. Es besteht jedoch die Möglichkeit, den Code im Popup-Fenster hervorzuheben und mit Strg+C zu kopieren. Außerdem können Sie im Dialog 'Anzeigen' die Optionen Hinzufügen, Mit Into hinzufügen, Zurücksetzen und Auswerten für die SQL-Anweisung auswählen.
- Auswerten
- Mit dieser Option wird überprüft, ob der implizite SQL-Code korrekt formatiert ist und ordnungsgemäß funktioniert.
- Entfernen
- Mit dieser Option wird der eingebettete SQL-Code entfernt und die ursprüngliche E/A-Anweisung wiederhergestellt.
- Zurücksetzen
- Wenn Sie den eingebetteten Code geändert haben, den EGL in das Programm eingefügt hat, werden Ihre Änderungen mit dieser Option rückgängig gemacht, und der ursprüngliche eingebettete Code wird wiederhergestellt.