Bist du sicher, dass auch wirklich SQLCOD = 100 auftritt ?
Vielleicht gabs ja einen anderen SQL-Code ab dem 3. Satz (Konvertierungsproblem, NULL-Anzeiger o.ä.).

Man sollte den SQLCOD schon gezielter abfragen:

exec sql fetch ...;
if SQLCOD <> *zero;
leave;
endif;

Schließlich bedeutet
0 = Daten gelesen
100 = EOF
< 0 = Fehler beim Lesen