#include exec sql include ../regression; exec sql whenever sqlerror stop; int main(void) { exec sql begin declare section; struct { char ename[12]; float sal; float comm; } emp; int loopcount; char msg[128]; exec sql end declare section; ECPGdebug(1, stderr); strcpy(msg, "connect"); exec sql connect to REGRESSDB1; strcpy(msg, "create"); exec sql create table emp(ename varchar,sal double precision, comm double precision); strcpy(msg, "insert"); exec sql insert into emp values ('Ram',111100,21); exec sql insert into emp values ('aryan',11110,null); exec sql insert into emp values ('josh',10000,10); exec sql insert into emp values ('tom',20000,null); exec sql declare c cursor for select ename, sal, comm from emp order by ename collate "C" asc; exec sql open c; /* The 'BREAK' condition to exit the loop. */ exec sql whenever not found do break; /* The DO CONTINUE makes the loop start at the next iteration when an error occurs.*/ exec sql whenever sqlerror do continue; for (loopcount = 0; loopcount < 100; loopcount++) { exec sql fetch c into :emp; /* The employees with non-NULL commissions will be displayed. */ printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } /* * This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to * proceed if any further errors do occur. */ exec sql whenever sqlerror continue; exec sql close c; strcpy(msg, "drop"); exec sql drop table emp; exit(0); }