Anmelden

View Full Version : Wie soll ich machen ?



HoScHiE
11-10-01, 10:07
Hallo,

ich habe eine Datei xyz und jemand soll im CL über Parameter mein SQL steuern können.

1. Alle Rechnungen können <,>,= X Euro sein

und/oder

2. Anzahl der Rechnungen <,>,= X.

Das ist eigentlich alles.

Ich muss dann halt nur diese Selektionen über eine Datei laufen lassen ... aber wie soll ichs machen ???

Ich habe bis jetzt alle Parameter
1. <,>,=
2. Wert in Euro
3. <,>,=
4. Anzahl Rechnungen
5. und/oder

in einen Datenbereich gelegt wo ich es jederzeit abrufen könnte.

Ich nur die möglichkeit per RPG/SQL(QMQRY) oder QRY normal.

SQL-RPG funzt bei uns net...

Ich danke Euch.
HoScHiE

Zehetner
11-10-01, 10:26
Bei dieser Problematik würde ich in einem CL die Parameter aus dem Datenbereich auslesen,
mit den Variablen einen OPNQRYF-Befehl erstellen und anschließend ein schlichtes RPG-Programm laufen lassen.

m.f.G.
Otto Zehetner

HoScHiE
11-10-01, 15:19
Ahso... hmmm.

Hat da jemand noch ne andere Idee ?
wie man das evtl. per SQL lösen kann ?

Ich dachte mir vielleicht einen SQL String per RPG/CL zusammen bauen , dann per CL das SQL(QMQRY) erstellen und aufrufen ...

aber dafür muss ich eine TEXT Datei im RPG erstellen und das ist wieder umständlich.

Fuerchau
13-10-01, 12:04
Erstellen Sie direkt einen QM-Query mit dem Querymanager (STRQM).
In dem Select können Sie Parameterwerte ähnlich CL angeben, also z.B.:

SELECT F1, F2, F3, ...
FROM FILEX
WHERE F1 &VERG1 &WERT1
and F2 &VERG2 &WERT2
:
:

Mittels STRQMQRY können Sie dann die Variablen aus dem CL füllen:

DCL &VERG1 *CHAR 2
DCL &WERT1 *CHAR XX
DCL &VERG2 *CHAR 2
DCL &WERT2 *CHAR XY

CHGVAR &VERG1 '<' (oder aus Parametern)
CHGVAR &WERT1 nnn

STRQMQRY .... SETVAR((VERG1 &VERG1) (WERT1 &WERT2) (VERG2 &VERG2) (WERT2 &WERT2) ...)
OUTFILE(XXX) ...

Wichtig ist folgendes: Die Werte müssen als Characterfelder übergeben werden (max. 256 Zeichen).
Da SQL für Vergleiche von Zeichenfolgen diese in Hochkamma erwartet, müssen Sie ggf. die Hochkommas ergänzen:

DCL &QWERT *CHAR 10 /* QUELL-Wert */
DCL &SWERT *CHAR 12 /* SQL-Wert */

CVHGVAR &SWERT ('''' *CAT &QWERT *CAT '''')

Die Variable &SWERT kann dann an QMQRY übergeben werden.

Viel Spaß beim ausprobieren.

[Dieser Beitrag wurde von Fuerchau am 13. Oktober 2001 editiert.]

HoScHiE
15-10-01, 13:32
HAllo,

erstmal vielen Dank Euch allen für die Hilfe.

bzgl. F-Bestimmung, SQL und diesem Problem hier.

Also ich habe jetzt die QTXTSRC als externe Dateibeschreibung genommen und mir per RPG einen SQL String selbst zusammen gestellt, so wie ich Ihn brauche.
Danach erstelle ich nur das QMQRY neu und funktioniert.

Die Idee mit dem QMQRY &VGL &Wert ist auch gut, werde ich mal ausprobieren.

Vielen Dank,
HoScHiE

Achso wer die Source haben möchte ... einfach melden.

**peter**
10-05-02, 10:03
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von HoScHiE:
HAllo,

erstmal vielen Dank Euch allen für die Hilfe.

bzgl. F-Bestimmung, SQL und diesem Problem hier.

Also ich habe jetzt die QTXTSRC als externe Dateibeschreibung genommen und mir per RPG einen SQL String selbst zusammen gestellt, so wie ich Ihn brauche.
Danach erstelle ich nur das QMQRY neu und funktioniert.

Die Idee mit dem QMQRY &VGL &Wert ist auch gut, werde ich mal ausprobieren.

Vielen Dank,
HoScHiE

Achso wer die Source haben möchte ... einfach melden.[/quote]


Hallo Hoschie

Deine Source würde mich mal interessieren. Habe in etwa das gleiche Problem wie du.

Vielen Dank
Gruss Peter