Sql dinamico in programma RPG
- Dettagli
- Categoria: Faq AS400
- Pubblicato Giovedì, 15 Ottobre 2009 08:59
- Scritto da Super User
- Visite: 4015
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