Inhaltsübersicht
Jede Query/400-Abfage (Objekte vom Typ *QRYDFN) hat einen SQL-Befehl gespeichert, der ausgeführt wird, wenn die Abfrage gestartet wird (z.B. mit dem Befehl RUNQRY
).
Mit dem Befehl RTVQMQRY ist es möglich, diesen SQL-Befehl aus der Abfrage zu exportieren und in einer Teildatei zu speichern.
Als Beispiel diene die Abfrage AETTMP/DSPOBJD_AL:
Zunächst muss eine physische Quelldatei erstellt werden, in der die SQL-Befehle der einzelnen Queries gespeichert werden sollen:
CRTSRCPF FILE(AETTMP/QQRYSQL) TEXT('Aus *QRYDFN extrahierte SQL-Befehle')
Jetzt ist es möglich, mit dem Befehl RTVQMQRY die SQL-Befehle zu extrahieren:
RTVQMQRY QMQRY(AETTMP/DSPOBJD_AL)
SRCFILE(AETTMP/QQRYSQL)
ALWQRYDFN(*YES)
Jetzt steht der SQL-Befehl aus dem Query in der Quelle AETTMP/QQRYSQL(DSPOBJD_AL) und kann von dort mit einem geeigneten Programm (z.B. RDi) in das XSQL-Fenster kopiert werden.
Im xsql-Fenster rechter Mausklick → SQL importieren ...
Namen der Quell-Teildatei angeben
Den Teildateinamen in [eckige Klammern] setzen!
Den Teil des Textes löschen, der nicht zum SQL-Befehl gehört.
Hier geht es darum, den Text aus der Quell-Teildatei in die Zwischenablage des PCs zu kopieren und im xsql-Fenster einzufügen.
Zum Anzeigen der Quell-Teildatei können verscchiedene Programme verwendet werden.
Das Programm Source Entry Utility (SEU) ist der Quell-Editor für IBM i Green-Screen.
Aufruf der Quell-Datei in einer 5250-Sitzung mit dem Befehl
WRKMBRPDM FILE(AETTMP/QQRYSQL)
Anstelle von AETTMP/QQRYSQL ist der Bilbliotheks-/Dateiname vom obigen Schritt (CRTSRCPF) zu verwenden
Auswahl 5 für die Teildatei mit dem exportieren SQL-Befehl
Es erscheint der Inhalt der Quell-Teildatei
Mit der Maus den SELECT-Befehl markieren und Bearbeiten → Kopieren klicken
Fügen Sie den kopierten SQL-Code mit STRG-V (oder über das Kontextmenü) in das xsql-Fenster ein und Klicken Sie auf "Ausführen"
In Query/400 ist es möglich, Textfelder zusammenzusetzen:
Die dazu RTVQMQRY-Ausgabe sieht so aus:
Dieser Befehl muss an zwei Stellen korrigiert werden, damit xsql ihn verarbeiten kann:
RTVQMQRY-Ausgabe | korrigierter Befehl |
---|---|
|
|
Mit diesen beiden Korrekturen kann der Befehl auch in xsql gestartet werden: