Wenn du eine Service-Funktion schreibst für dynamisches SQL must du pro Cursor ein Statment, 1 Cursor usw. declarieren.

Über entsprechende Funktionen, Globale Definitionen und Exporte kannst du das steuern, z.B.:

d ReturnVal 10I 0
d Return_OK const(0)

d MyBuff ds
:

/free
if OpenCursorC0('select * from table1') = Return_OK;
dow FetchCursorC0(MyBuff) = Return_OK;
:
enddo;
ReturnVal = CloseCursorC0();
endif;

Das Service-Programm bietet pro Cursor die Funktionen Open, Fetch und Close an.

Benötigst du mehr Cursor, erweiterst du um entsprechende Funktionen !

Du kannst dann auch ein "ExecDirect('delete * from table')" erstellen, da hier keine Cursor benötigt werden.

usw. usw.

Ich möchte dir die Arbeit hier natürlich nicht abnehemen.