Wenn SQL nur die Daten einliest (und Du außerdem FOR READ ONLY definiert hast), ist SQL auch nicht für die Satz-Sperren zuständig. Allerdings solltest Du nach den Änderungen den Cursor schließen und erneut öffnen, damit Du auch die aktuellen Daten siehst. (Man kann allerdings auch mit sensitiven Cursorn herumspielen).

Die Sperren erfolgen beim Einlesen vor dem Update oder Delete, oder durch den Delete mit Schlüssel.
Sofern eine Datei in den F-Bestimmungen als Update-Datei definiert wurde, ein Satz eingelesen wurde, bleibt dieser Satz solange gesperrt, solange kein Update erfolgt oder der nächste Satz gelesen wird. (Klassisches RPG ohne Commitment Steuerung).

Wird mit Commitment Steuerung gearbeitet und der Datensatz unter Commit eingelesen, bleibt er solange gesperrt, bis eine Commit oder Rollback-Aktion den Satz freigibt. Die Erweiterung (N) oder ein expliziter UNLOCK sind wirkungslos.

Kann es sein, dass die Inserts, Updates und Deletes unter Commitment Control mit einem höheren Level als *CHG erfolgen und noch nicht freigegeben (Commit oder Rollback) wurden?

Birgitta