View Full Version : QRY und PARAMeter
Hallo,
ich weiß das es funktioniert und habe es früher auch schon mal gesehen.
Wie kann ich einen Parameter an ein QRY übergeben.
Ich glaube es wurde mit dem QMQRY gemacht.
Ich möchte gerne eine Adresse an ein Qry übergeben und dann die Abfrage starten und die eine Datei ausgeben.
Mann könnte das auch mit SQLRPG machen aber leider funzt das nicht bei uns.
Wenn einer weiß wie es geht bitte schickt mir ein Beispiel...nur ein Kleines :-)
Danke,
HoScHiE
andigoering
05-09-01, 16:11
Hallo!
Query und Parameter geht nur über den Befehl STRQMQRY.
D.h. das Query wird quasi zur Laufzeit in ein QM-Query umgewandelt.
Die Übergabe erfolgt durch den Parameter SETVAR...
Übrigens:
Der "QueryOptimizer" (www.queryopt.de) unterstützt auch in dieser Hinsicht...
Grüße
Andi Göring
Wenn das Query direkt aufgerufen werden soll und der Benutzer in der Lage ist die Selektions-Kriterien zu bearbeiten, kann man auch über den RUNQRY-Befehl diese setzen.
Wird der RUNQRY-Befehl wie folgt eingegeben, werden zunächst die Selektions-Kriterien angezeigt und können verändert werden. Anschliessend wird das geänderte Query durchgeführt.
RUNQRY QRY(HAUSER/QUERY)
RCDSLT(*YES)
Vielleicht hilft's
B. Hauser
Vielen Dank.
ICh bevorzuge die QMQRY Variante.
Hat vielleicht mal einer ne´n kleines Beispiel.
1. Eingabe Adresse 100 - 200 per DSPF
2. CL startet QMQRY "QRYAD" mit Felder aus DSPF
3. Ausgabe als Datei "Datei1"
Danke
Peter Kosel
06-09-01, 14:09
Also Hoschie,
hier die Antwort :
************************** Anfang der Daten ***********************
SELECT
-- Spalten
A.LGSFAM, A.LGSFAN, A.LGSPA2, A.LGSFAQ, A.LGSPBA, A.LGSPAG
-- Tabellen
FROM "LL01W120"/"LGLJPS" A
-- Zeilenauswahl
WHERE ((LGSFAM = &COND1)
AND (LGSFAN = &COND2)
AND (LGSPA2 BETWEEN &COND3 AND &COND4)
AND (LGSPFP > '19')
AND (LGSPAG LIKE '%Ablö%'))
-- Sortierspalten
ORDER BY A.LGSFAM, A.LGSPA2, A.LGSPBA
**************************** Ende der Daten ***********************
im CL rufst du dann folgendes auf :
STRQMQRY QMQRY(*LIBL/LGABLOESS) OUTPUT(&OUTPUT) +
QMFORM(*LIBL/LGABLOES) SETVAR((COND1 +
&QFIRMA) (COND2 &QBEREICH) +
(COND3 &QVABT) (COND4 &QBABT))
Ich hoffe Du kommst mit dieser Darstellung zurecht.
Grüße aus dem QM
Peter
Danke :-) ... aber wie erstelle ich so ein QM Ding ?
Da muss ich doch ein Formular oder sowas angeben ?
Wo gebe ich das SQL Statement ein ?
Bin da leider keine helle Leuchte bei QMQry´s
Danke
Brauche eine Dateiausgabe...
Peter Kosel
07-09-01, 07:17
Hallo Hoschie,
wenn Du die im Select angegebenen Felder in eine Datei haben möchtest ersetzt Du einfach den Parameter &OUTPUT mit dem Wert *OUTFILE und gibst dan in den entsprechenden Parametern die Bibliothek und den Dateinamen mit. Ic habe in meinem Beispiel lediglich die Ausgabe variabel gehalten. Neue Reports kannst Du mit STRQM erstellen. Alles weitere führt hier jetzt wohl zu weit.
Gruss
Peter
Ach ja ... Voraussetzung für STRQM ist ein installiertes ST1
Hallo,
tja das wars wohl :-( kein QMQRY auf der Maschine keine RPGSQL .. :-(
OK dann muss ich das wohl mit Qry machen.
Danke
Achja woran kann ich erkennen ob QMQRY auf der Maschine ist ?
Hallo HoScHie,
auf der AS400: GO LICPGM, dann Auswahl 10, dann nach "57xxST1 DB2 Query Mgr and SQL DevKit für AS/400" suchen - das ist, was Du brauchst damit QMQRY geht.
Gruss Reinhold
Sven Schneider
10-09-01, 20:05
Hallo schreibr,
CRTQMQRY und STRQMQRY sind Bestandteil vom OS/400.
Das Lizenzprodukt 57xxST1 ist nicht notwendig !!!.
57xxST1 brauchst du nur, wenn du
- die SQL-Precompiler
bzw.
- interactives SQL benutzt.
Ab V5R1 ist übrigens STRSQL (interactives SQL) kostenloser Bestandteil von OS/400