View Full Version : OPNQRYF per RPG-PGM erstellen
Um das "zusammenbauen" bei dynamischen Befehlen kommt man nun mal nicht herum.
Sonst wäre es nicht dynamisch sondern statisch:
eval qryslt = '(' + fldnam1 + ' %range("' + fldval1 + '" "' + fldval2 + '") "
usw. usw.usw.
Das soll wohl sein, habe nur Kollegen, die in COBOL wohl "alles" ohne großen Aufwand schaffen und RPG solls nit können:( grml
Das ist wohl eher umgekehrt der Fall. Vieles ist in RPG erheblich einfacher als in COBOL. Ich kenne beide Sprachen wirklich zur genüge.
Auch COBOL muss sich solche Befehle zusammenbauen. Dies liegt nicht an der Sprache selber sondern an der Aufgabenstellung !
Ausserdem: COBOL ist äussert schreibintensiv. In RPG und nun RPGLE kommst du mit 30-50% Schreibarbeit aus. ILE und Prozeduraufrufe wurden in COBOL stark vernachlässigt. Was in RGPLE diesbezüglich absolut einfach geht ist in COBOL nur schwierig bis gar nicht lösbar.
Sobald man fit in RPG/LE ist schreibt man Programme auch doppelt so schnell und weniger fehlerbehaftet (solang man nicht Freeform nimmt) als in COBOL. Da reicht manchmal schon ein vergessener Punkt für tausende Folgefehler.
Um obigen "eval" mit COBOL zu vergleichen dann schau dir folgenden COBOL-Befehl an:
string
'(' delimited by size
fldname1 delimited by space
' %range("' delimited by size
fldval1 delimited by space
'" "' delimited by size
fldval2 delimited by space
'")' delimited by size
into qryslt
Was ist da wohl einfacher ?
Ich habe jetzt die komplette Datenstruktur gefüllt, um den Befehlssyntax für QRYSLT einfacher gestalten zu können, könnte ich das doch mit einem call auf ein ILE-RPG machen, oder ? ( DS übergeben, aufbereiten und Übergabe an QRYSLT für OPNQRYF )
Übrigens, es sind im OPNRYF 3 Dateien miteinander verbunden, wenn dann der Select auch funzt, kann ich mir über das Format die entstandene Datei mit SQL anschauen ?
Problem gelöst, keine saubere Lösung, aber auf die schnelle weil ja alles sofort machbar sein muss:
Interne DS aufgemacht mit IDS, alle Felder vorbesetzt ( Range ) und gebe diese dann in die externe DS aus für QRYSLT
Das funzt, trotzdem bin ich nicht glücklich damit
Danke Euch allen für Eure Hilfe
Per SQL kann man sich das Format nicht anschauen, aber mit CPYFRMQRYF kannst du sehen, obs funzt:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/cl/cpyfrmqr.htm
Aber sehr dynamisch und variabel ist deine Lösung nun nicht, da du ja immer alle Parameter füllen must.