Figure 15: Block insert examples in RPG
Demprow1 DS QUALIFIED DIM(3) D age 4B 0 INZ(0) D empname 10A INZ('TEST INZ') D dept 9B 0 INZ(111) D* D whereage S 9B 0 INZ(25) D hvbump S 9B 0 INZ(1) D hvres S 9B 0 INZ(0) D numrows S 9B 0 INZ(3) D ind1 S 4B 0 INZ(0) D ind2 S 4B 0 INZ(0) D ind3 S 4B 0 INZ(0) D* C C* /free EVAL emprow1(1).empname='TOM' ; EVAL emprow1(2).empname='MARY' ; EVAL emprow1(3).empname='JOE' ; EVAL emprow1(1).age=25 ; EVAL emprow1(2).age=50 ; EVAL emprow1(3).age=21 ; EVAL emprow1(1).dept=123 ; EVAL emprow1(2).dept=234 ; EVAL emprow1(3).dept=345 ; // EXEC SQL WHENEVER SQLERROR GOTO FAILTAG ; // EXEC SQL DECLARE C1 CURSOR FOR SELECT age + :hvbump :ind1 FROM FINAL TABLE ( INSERT INTO table1 :numrows ROWS VALUES( :emprow1 )) AS X WHERE age >= :whereage :ind3 ; // // Fetch result row EXEC SQL OPEN C1 ; EXEC SQL FETCH C1 INTO :hvres :ind2 ; dsply ('Result: ' + %char(hvres) ) ; EXEC SQL CLOSE C1 ; // /end-free C FAILTAG TAG C SETON LR