Anmelden

View Full Version : CRTSQLRPGI & COMMIT(*NONE)



JIM
14-07-08, 10:50
Hallo zusammen!

Bei einigen meiner SQLRPGLE-Programme muss ich beim Umwandeln immer den Parameter COMMIT auf *NONE setzen. Nun dachte ich, das könne man mit den H-Bestimmungen als Umwandlungsanweisung festlegen und ich muss dann niemehr wieder dran denken. Aber das Schlüsselwort COMMIT ist dabei nicht erlaubt.

@Fuerchau
Yes, ich habe das Forum erst durchsucht, Deine Lösung aus dem Jahr 2004 gefunden (puh, Gottseidank ein Beitrag aus dem selben Jahrtausend), eingebaut, umgewandelt, aufgerufen, gejubelt...

/exec SQL set option commit=*none
/end-exec

Aber ich dachte man kann alle Parameter in den H-Bestimmungen angeben oder mach ich was falsch???

H COMMIT(*NONE)


Für Hinweise wie immer sehr dankbar,
Gruß, JIM

Fuerchau
14-07-08, 10:53
H-Bestimmungen sind für RPG.
exec sql Set Option ....; sind eben für SQL.
Lad dir das aktuelle SQL-PDF herunter, man kannziemlich viele Optionen so festlegen.
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/pdf_table/table/launcher.htm

JIM
14-07-08, 11:46
Danke, ich dachte, dass alles, was ich beim CRT-Befehl per Parameter angeben kann, auch in den H-Bestimmungen möglich wäre.

Danke auch für den Link, werde mir die Sachen gleich mal anschauen.

Gruß,
JIM

B.Hauser
14-07-08, 12:48
Hallo,

zur Umwandlung von embedded SQL gibt es für Programme, Module und Service-Programm nur einen einzigen Befehl CRTSQLRPGI.

Vor der eigentlichen Compilierung läuft der SQL-Precompiler über den Source Code. Der Precompiler verarbeitet lediglich die SQL-Statements und ersetzt diese durch API-Aufrufe. Die RPG-Commands (mit Ausnahme der D-Bestimmungen) bleiben unberücksichtigt. Deshalb werden auch die H-Bestimmungen ignoriert und das SET OPTION-Statement jedoch verarbeitet.
Nach der Verarbeitung durch den SQL-Precompiler werden die eigentlichen Create-Befehle, CRTBNDRPG oder CRTRPGMOD ausgeführt, je nachdem, ob mit 14 oder 15 umgewandelt wird.

Vielleicht noch eine Anmerkung zum SET OPTION-Statement.

Es darf nur ein einziges SET OPTION-Statement pro Quelle angegeben werden
Seit Release V5R4 muss das SET OPTION-Statement in der Quelle das 1. SQL-Statement sein. Befindet sich das SET OPTION-Statement z.B. in der *INZSR-Routine, die am Ende der Quelle steht, gibt es einen Compile-Fehler mit einer ziemlich undurchsichtigen Fehlermeldung.


Birgitta

JIM
14-07-08, 12:52
Hallo Birgitta,

danke für die ausführlichen Informationen.

Ja, dass das SET OPTION die erste SQL-Anweisung sein muss, durfte ich auch gleich "leidvoll" erfahren, als ich es zunächst in meiner Init-Unterroutine eingebaut hatte...

Danke!

Gruß, JIM