Hallo zusammen,

ich habe das Problem dass der Execute ROLLBACK zwar ausgeführt wird (also der Satz ist als ROLLBACK markiert, aber er ist nicht tatsächlich ausgeführt. Erst wenn ich mich abmelde wird er tatsächlich ausgeführt.

Meine erste Variante war folgendes
In iSql befindet sich ein INSERT

c/exec sql
c+ Set Option Commit = *CHG
c/end-exec
c/exec sql
c+ Execute Immediate :iSql
c/end-exec
c/exec sql
c+ Execute rollback
c/end-exec
Das Programm SQLRPGLE wird mit *inlr = *on beendet

In diesem Ablauf ist das Verhalten wie ich es bereits beschrieben habe. Der Satz ist markiert (Ich kann über UPDDTA keine Änderungen an dem Satz machen) aber der Satz ist immer noch in der Datei. Erst wenn ich mich abmelde ist der Satz wieder weg.

Jetzt habe ich in den H-Bestimmungen folgendes angegeben (vorher hatte ich nichts angegeben)
h dftactgrp(*no) actgrp(*new)

Wenn ich jetzt das RPG aufrufe, wird der ROLLBACK überhaupt nicht ausgeführt. Selbst nach dem Abmelden bleibt der Satz in der Datei.

HILFE!!!!!!!! :-) Ich bin mit meinem Latein am Ende.

Ich denke ich kann es umgehen wenn ich mit STRCMTCTL und rpg commit und rollback arbeite, aber es sollte doch auch mit dem SQL Commit und Rollback möglich sein