Anmelden

View Full Version : Fully Free und SQLRPGLE



Seiten : [1] 2

dschroeder
17-12-15, 10:02
Hallo,

nur mal eine kurze Frage? Nutzt jemand bereits das Fully Free RPG? (Stichwort **FREE). Und falls ja, klappt das bei euch auch mit der Dateiart SQLRPGLE? Bei uns können wir keine Copy-Strecken einbinden, wenn die Dateiart SQLRPGLE ist. Ich habe bereits einen Call bei IBM aufgemacht. Aber ich habe noch keine Lösung erhalten. Bisher sagt man nur, es müsste eigentlich gehen.

Deshalb meine Frage, ob jemand von euch etwas dazu sagen kann.

Dieter

dschroeder
17-12-15, 10:04
Sorry, habe gerade gesehen, dass ich das falsche Forum gewählt habe. Sollte eigentlich in Programmierung gestellt werden. Aber ich lasse es jetzt einfach mal hier.

andreaspr@aon.at
17-12-15, 10:08
Hallo Dieter,

kann es sein dass du nach der Compile Option:
RPGPPOPT > *LVL2
suchst?

lg Andreas

dschroeder
17-12-15, 10:19
Hallo Andreas,

danke für die Antwort. Aber nein, diese Option ist bei uns bereits gesetzt.

Wir wandeln prinzipiell mit folgenden CMD:


// Basis-Command festlegen:
cmd = 'CRTSQLRPGI COMMIT(*NONE) OBJTYPE(*MODULE) TGTRLS(*CURRENT) +
DATFMT(*EUR) DBGVIEW(*SOURCE) USRPRF(*OWNER) +
DYNUSRPRF(*OWNER) RPGPPOPT(*LVL2) ';

(Ein paar Parameter sind hier jetzt nicht angegeben).

Ich muss dazusagen, dass ich versuche, ein Serviceprogramm zu erstellen. Mit einem "normalen" PGM habe ich es noch gar nicht versucht.

Dieter

dschroeder
17-12-15, 10:25
Mein Problem ist, dass gar nichts funktioniert, sobald ich die Teildateiart SQLRPGLE habe UND eine Copy-Strecke eingebettet ist. Es spielt dabei keine Rolle, was in der Copy-Strecke drinsteht. Es kann auch eine Copy-Strecke mit reinem free-Format Kommentar sein. Der Parser erkennt nur Blödsinn. Er erkennt auch keine SQL-Anweisungen mehr. Erst wenn ich die von ganz links nach Spalte 8 schiebe, erkennt er die SQL-Anweisungen zumindest. Sieht für mich so aus, als würde die Dateiart SQLRPGLE gar nicht mit Copy-Strecken klarkommen und den Parser dann auf das "normale" Free umschalten.

Dieter

B.Hauser
17-12-15, 11:15
Aktuell ist es so, dass der SQL-Precompiler, Copy-Strecken, die mit /COPY oder /INCLUDE definiert sind, nur dann im FULL-Free auflösen kann, wenn der Slash (/) genau auf Position 7 steht.

Wenn in der Copy-Strecke nur für den SQL-Precompiler uninteressante Informationen hinterlegt sind, würde ich die Copy-Strecke mit /INCLUDE einfügen und mit RPGPPOPT *NONE umwandeln.

Prüfe sicherheitshalber, ob Ihr auch alle PTFs installiert habt, ich hatte meine Freude damit, dass SQLCA vor die H-Bestimmungen kopiert wurde!!!

Birgitta

Birgitta

dschroeder
17-12-15, 11:43
Danke Birgitta.

Das mit dem Slash auf Position 7 hatte ich schon probiert. Bringt bei mir nichts. Selbst wenn in der Copy-Strecke nur Kommentar steht, geht es nicht. Für den Echtfall benötigen wir jedoch Copy-Strecken, in denen teilweise fixed Format drinsteht. In den Copy-Strecken sind wiederum andere Copy-Strecken mit include eingebunden. Wir haben also 2-schichtige Copy Strecken: In das Programm wird eine Copy-Strecke mit /copy eingebunden. In der Copy Strecke selber steht dann noch ein /include.

Die PTFs sind alle da. Habe ich schon an IBM gemeldet.

Deine Sache mit SQLCA vor den H-Bestimmungen: Wurde das durch ein PTF beseitigt?
Wir haben die PTFs SF99701 mit Level 38 und das SI58136. Hast du noch neuere?

Dieter

dschroeder
18-12-15, 11:19
Ich möchte nur mal kurz den Stand der Dinge verkünden:
Es sieht so aus, als würde der (Pre-)Compiler nicht korrekt arbeitet, wenn man das Schlüsselwort RPGPPOPT(*LVL2) verwendet. Es geht, wenn man es auf *NONE stellt. Das funktioniert aber inhaltlich bei uns nicht, da es einige Programme gibt, die per embedded SQL eine per Copy-Strecke eingebundene Datenstruktur füllen.

Mal sehen, was IBM für einen Lösungsvorschlag hat.

Dieter

B.Hauser
18-12-15, 11:50
Vielleicht noch eine Anmerkung:
Sobald Du auf **FREE bist können danach keine Fix-Format-Definitionen mehr eingebunden werden.
Es gibt keine Möglichkeit den FULL-Free wieder abzustellen.
Wenn Deine Datenstruktur im Fix-Format ist, darfst Du erst nach der Definition der Datenstruktur auf FULL-Free gehen.

Birgitta

dschroeder
18-12-15, 11:55
Steht das echt so im Handbuch? Ich dachte, ich hätte gelesen, dass man in der ersten Zeile des Sourcecodes **FREE eintragen muss. Dann darf nur noch free Code in der Quelle folgen. Wenn man doch fixed format code benötigt, muss man den über eine Copy-Strecke einbinden. Ich habe bisher nichts gelesen, was eine Unterscheidung zwischen Definitionen und sonstigen Anweisungen notwendig macht.

Aber ich gestehe, ich habe auch nicht viel Literatur dazu gefunden.

Dieter