Sql dinamico in programma RPG

Come inserire codice SQL dinamico in un programma RPG?

Io generalmente uso due tecniche:
1) Sostituzione variabile in stringa con concatenazioni:
C CLEAR CMDSQL 500
C EVAL CMDSQL='SELECT count(*) FROM '+
C + VAR1 +
C ' WHERE '+
C + VAR2 +
C '='''+VAR3+''' '
C*... Esecuzione SQL
C/EXEC SQL
C+ PREPARE CMDSQL FROM: CMDSQL
C/END-EXEC
C/EXEC SQL DECLARE C1 CURSOR FORCMDSQL
C/END-EXEC
C/EXEC SQL OPEN C1
C/END-EXEC
C/EXEC SQL FETCH C1 INTO :CONTA
C/EXEC SQL CLOSE C1
C/END-EXEC

2)Oppure con la sostituzione intrinseca dell'SQL
C CLEAR CMDSQL 500
C EVAL CMDSQL='UPDATE MYFILE '+
C 'SET SOTTOTIPO=? ' +
C 'WHERE TIPO=? '
C/EXEC SQL
C+ PREPARE CMDSQL FROM: CMDSQL
C/END-EXEC
C/EXEC SQL
C+ EXECUTE CMDSQL USING :$SOTTOTIPO, :$TIPO

C/END-EXEC