Commit oder nicht Commit hängt ausschließlich von der Datenbank ab. Wird diese Journalisiert, ist bei Update/Insert/Delete ein Commit erforderlich. Beim Select wird ja nur gelesen.
Der Commit ist insoweit "gefährlich" als dass dieser alle Cursor schließt, die nicht explizit als über Commit-Grenzen hinweg offen zu halten definiert sind.
Beim Rollback werden die Cursor-Positionen genauso zurückgesetzt (beliebter Endlos-Loop, da das Programm immer bei dem selben Fehler einen Rollback macht und halt wiederholt bis der Fehler erneut kommt).

Setze in deinem Programm per
/exec sql
+ set option commit=*none
/end-exec

das Commit ausser Kraft und entferne das Commt.

SQLCOD = 100 => Keine Daten
SQLCOD = 0 => Daten vorhanden
SQLCOD < 0 => Mehr als 1 Satz oder auch sonstige Fehler.