Dankeschön euch!
Unabhängig von der Lösung habe ich jetzt das Problem, dass mein "declare" scheinbar
keinerlei Beachtung vom Compiler findet.

Vor dem declare kann ich sqlcode beliebig setzen (mit ev im debug).
dann kommt mein Codestück:

Code:
         exec sql declare  fieldcursor cursor for
                  select   apkeyf, apkseq
                  from     tmprcdfmt
                  order by apkeyn asc;


         if sqlcode <> 0;
           ind_fehler = *on;
           return ind_fehler;      
         endif;
und mein sqlcode hat danach immernoch den selben Wert, als hätte er nicht
einmal versucht den Cursor zu setzen.
exec sql open xy oder close xy dagegen finden Beachtung.
Habt ihr da eine Idee?

Das Modul erstelle ich so:
Code:
CRTSQLRPGI 
             OBJ(TESTLIB/SQLTEST)      
             SRCFILE(TESTLIB/QRPGSRC) 
             SRCMBR(SQLTEST)             
             OBJTYPE(*MODULE)           
             REPLACE(*YES)              
             DBGVIEW(*SOURCE)