Zitat Zitat von Fuerchau Beitrag anzeigen
Es gibt da noch einen kleinen Trick.
QMQRY interpretiert den SQL erst nachdem die Variablen gefüllt sind.
Der Inhalt jeder Variable kann bis zu 55 Zeichen lang sein.
Nun kann man also einfach einen QMQRY erstellen:

&V1&V2&V3&V4&V5

Per CLP kann der SQL nun in einer Variablen zusammengebaut werden.
Per "
STRQMQRY ... SETVAR((&V1 (%SST(&MYCLVAR 1 55)) (&V2 (%SST(&MYCLVAR 56 55)) ....)
kann dann jeder beliebige SQL übergeben werden.

(...)
Da gibt's aber ein Problem (arbeite unter V5R4)!
Es werden alle Variablenwerte, die ich dem SETVAR übergebe, getrimmt.
Trifft man zwischen zwei %SST, also z. B. auf Position 55, genau vor oder hinter ein Blank, so wird dieses Blank in der QMQRY-Verknüpfung &V1&V2&V3.... nicht wieder eingefügt.

Sieht in etwa so aus:

&myquery ('select a, b, c, d, e from KundenPF inner join UmsatzPF on etc=blabla WHERE a=b')

&V1 wird: %SST(&myquery 1 55) = 'select a, b, c, d, e from KundenPF inner join UmsatzPF '

&V2 wird: %SST(&myquery 56 55) = 'on etc=blabla WHERE a=b'

Im QM-Qry wird das ganze dann jedoch so zusammengesetzt:
"select a, b, c, d, e from KundenPF inner join UmsatzPFon etc=blabla WHERE a=b"

Da steigt er bei mir aus, da der Blank zwischen UmsatzPF und on verloren genagen ist!

Liegt's am Release, oder kann man bei der Variablenübergabe 'was anders machen, so dass führende/folgende Blanks den SETVAR überleben?

Danke und Gruß
Thomas