Anmelden

View Full Version : QRY und PARAMeter



Seiten : [1] 2 3

HoScHiE
05-09-01, 15:51
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

B.Hauser
06-09-01, 07:10
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

HoScHiE
06-09-01, 09:51
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

HoScHiE
06-09-01, 16:04
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

HoScHiE
07-09-01, 12:01
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 ?

schreibr
07-09-01, 12:50
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