Innerhalb einer Prozedur wird der Fetch einfach nicht ausgeführt.

Prozedur sieht so aus:


C/EXEC SQL
C+ DECLARE C1 CURSOR FOR
C+ SELECT * FROM SCHUELLER/ARBP2P
C+ WHERE FERT1B BETWEEN 680 AND 699 AND BLOCKN <> 0
C+ ORDER BY MDT, BLOCKN, FERT1B, LFDNREH, STKZ2B,
C+ CASE RLB WHEN 'R' THEN '1' WHEN ' ' THEN '2' WHEN 'L' THEN '3' END
C+ FOR UPDATE OF BLFOLGE
C/END-EXEC

C/EXEC SQL
C+ OPEN C1 USING :g_dsARBP2P
C/END-EXEC

C/EXEC SQL WHENEVER NOT FOUND GO TO ENDE1
C/END-EXEC

C*-----------------------------
C SQLCOD DOUNE 100
C*-----------------------------
C/EXEC SQL
C+ FETCH NEXT FROM C1 INTO :g_dsARBP2P
C/END-EXEC
C*-----------------------------

// Ermittlung von BLFOLGE in Free-RPG

C/EXEC SQL
C+ UPDATE SCHUELLER/ARBP2P
C+ SET BLFOLGE = :g_dsARBP2P.BLFOLGE
C+ WHERE CURRENT OF C1
C/END-EXEC

C*-----------------------------
C ENDDO

wenn ich debuge dann steht im Wert SQLCOD = -000000501(beim zweiten Schleifendurchgang) und in der Strukur in die ich schreiben will steht nichts

g_dsARBP2P = def. wie Satz in Datei und global.

Was kann ich tun?
Mache ich etwas falsch?