Parametrierte Abfragen werden so definiert:

/exec sql
+declare cursor mycursor for
+Select field1, field2, ....
+from myfile
+where key1=:mykey1 and key2=:mykey2 ...
/end-exec

Um die Abfrage dann auszuführen muss die Abfrage natürlich immer neu geöffnet werden:

/exec sql open mycursor
/end-exec

do *hival
/exec sql
+fetch mycursor into :myfield1, :myfield2, ...
/end-exec

if sqlcod < *zero
or sqlcode = 100
leave
endif

:
write MySubfile
:

enddo

/exec-sql close mycursor
/end-exec