Anmelden

View Full Version : Problem mit QM-Aufruf



Seiten : 1 [2]

Fuerchau
16-09-05, 12:32
SETVAR((NAME2 ('''' *CAT &NAME2 *CAT '''')))

Es sind also 4 Hochkomma vor und hinter den Inhalt zu setzen.

apparat
16-09-05, 12:40
wenn ich genau das eintippe bringt er mir den fehler das diese zeichenfolge ungültig ist. mit 3 geht es aber mit 4 nicht komischerweise

Fuerchau
16-09-05, 12:44
3 ist falsch, es müssen 4 sein. Bei der Eingabe machst du was falsch.

kuempi von stein
16-09-05, 12:51
wenn ich genau das eintippe bringt er mir den fehler das diese zeichenfolge ungültig ist. mit 3 geht es aber mit 4 nicht komischerweise
ist aber richtig so.
manchmal ist clp zickig.
nehme mal ne leere zeile tippe den befehl strqmqry ein und kopiere dahinter
SETVAR((NAME2 ('''' *CAT &NAME2 *CAT '''')))
dann mit f4 prompten und den qmquery-namen nachgeben.

kuempi

Fuerchau
16-09-05, 13:01
So zickig ist das gar nicht.
Das Problem beim Prompt (F4) ist folgendes:

Gibt man eine Zeichenkette ein und leitet diese mit einem Hochkomma und *cat ein, wird der gesamte Ausdruck nicht bewertet sondern als Zeichenkette angenommen. Daher werden dann ggf. selber Hochkommata eingefügt oder Fehler ausgegeben.

Möchte man Funktionen wie *CAT %SST o.ä. verwenden, muss man die Eingabe mit einer Klammer-Auf beginnen und mit Klammer-Zu abschließen !!!
Genau dann wird die Eingabe eben als Ausdruck angenommen.

Hintergrund:
Erstellt man ein CMD, kann man bei jedem PARM angeben, ob ein Ausdruck bewertet werden kann oder nicht. Ist eine Bewertung erlaubt, kann man mittels Klammern eben Verkettungen und Ausdrücke (neu auch Berechnungen) verwenden.
Reicht die Eingabe beim Prompt nicht aus, kann das Feld mittel "& " (Ampersand+Leerzeichen) dynamisch vergrößert werden.
So kann ich z.B. bei fast allen Kommandos berechnete Ausdrücke verwenden anstatt immer Hilfsvariablen erst mal zusammenzubauen.

apparat
16-09-05, 13:37
jetzt hat er es erstmal gemacht. muss mir nur noch was überlegen mit den numerischen werten da die momentan als charcter sind aber in der table numerisch sein müssen. werd ich sie ganz einfach konvertieren. mal eben inner ddssrc nachsehen

apparat
16-09-05, 13:44
ok habs jetzt endlich hinbekommen. also vielen dank für eure geduld und mithilfe

gruß apparat

Fuerchau
16-09-05, 14:35
Beim Aufruf eines QM werden grundsätzlich Zeichenvariablen übergeben, eine Konvertierung ist hier nicht nötig.
Es sei denn, du hat im CLP die Variable als numerisch, dann einfach per "CHGVAR &CHARVAR &NUMVAR" in Zeichen umwandeln.
SQL interpretiert das dann schon richtig, da Zeichen eben in Hochkomma und Zahlen ohne angegeben werden.