Zitat Zitat von Fuerchau Beitrag anzeigen
Der Commit-Status der F-Bestimmung ist nicht änderbar und gilt zur Compilezeit.
Entweder du machst das insgesamt unter SQL, also ohne F-Bestimmung, dann gilt die aktuelle Commit-Stufe oder du setzt das Programm in eine eigene ACTGRP und hast dann deine eigene Commit-Umgebung, die auch *NONE sein kann.

DFTACTGRP(*NO) ACTGRP(Programmname)

Aber Vorsicht: bei einem Update kannst du einen Deadlock innerhalb des Jobs erzeugen, wenn der Satz im Job durch eine andere ACTGRP gesperrt ist.
Vorteil: Man kann z.B. Protokollsätze erzeugen, die auch durch Rollback nicht mehr verschwinden.
Doch das funktioniert mit dem commit nach Bedingung:
0025.00 fPmTrnL01 uf e K disk commit(W@Commit)
0026.00 f usropn
c if Tr#TTI = '0'
c eval W@Commit = '0'
c else
c eval W@Commit = '1'
c endif
Leider klappt die Abfrage nicht, weil in der Variable immer 1 steht, auch wenn ich keinen STRCMTCTL gemacht habe.