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

Klicken Sie mit der rechten Maustaste in die erste Zeile einer SQL-Datensatzdefinition und wählen Sie SQL-Datensatz aus. Ein zweites Menü enthält die folgenden Optionen:
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).

Klicken Sie für eine Umsetzung von implizitem SQL-Code in eingebetteten SQL-Code mit der rechten Maustaste in eine EGL-E/A-Anweisung, die eine auf einem Datensatzabschnitt+++ mit dem Stereotyp SQLRecord basierende Datensatzvariable referenziert. Wählen Sie im Menü SQL-Anweisung aus. Die hier aufgeführten Beispiele verwenden alle den folgenden Satzabschnitt:
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
Im Menü 'SQL-Anweisung' sind die folgenden Optionen verfügbar:
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.

Feedback