Ich habe ein wenig weiter mit der obigen Quelle herumexperimentiert.
Wenn ich FETCH NEXT... ersetze durch
Code:
fetch relative 1 from C1 into sql descriptor :v_descriptor
und direkt danach
Code:
c if v_i_fetch = 2
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c endif
*---
c if v_i_fetch = 3
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c endif
*---
c if v_i_fetch = 4
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c endif
dann werden tatsächlich die nächsten Zeilen eingelesen.
Das heisst, man braucht pro FETCH RELATIVE 1 ... -Vorgang in der Schleife immer ein zusätzliches FETCH RELATIVE 0... mehr.
Das kann ja nicht der Weisheit letzter Schluss sein - ist also wohl ein Bug.
Eine Schleife in der Art
Code:
c If v_i_fetch >= 2
c eval v_i_fetch_0 = v_i_fetch - 1
c do v_i_fetch_0
c/exec sql
c+ fetch relative 0 from C1 into sql descriptor :v_descriptor
c/end-exec
c enddo
c EndIf
funktioniert nicht.
Kann diesen Effekt einer von Euch bei sich auf der i5 nachvollziehen (Betriebssystem ist V5R4M0)?
Viele Grüße
Michael
Bookmarks