Kaufmann
27-06-06, 12:20
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?
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?