/* Processed by ecpg (regression mode) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))

#line 1 "whenever_do_continue.pgc"
#include <stdlib.h>


#line 1 "regression.h"






#line 3 "whenever_do_continue.pgc"


/* exec sql whenever sqlerror  stop ; */
#line 5 "whenever_do_continue.pgc"


int main(void)
{
	/* exec sql begin declare section */
	
	
		 
		 
		 
	 
	 
	 
	
#line 15 "whenever_do_continue.pgc"
 struct { 
#line 12 "whenever_do_continue.pgc"
 char ename [ 12 ] ;
 
#line 13 "whenever_do_continue.pgc"
 float sal ;
 
#line 14 "whenever_do_continue.pgc"
 float comm ;
 } emp ;
 
#line 16 "whenever_do_continue.pgc"
 int loopcount ;
 
#line 17 "whenever_do_continue.pgc"
 char msg [ 128 ] ;
/* exec sql end declare section */
#line 18 "whenever_do_continue.pgc"


	ECPGdebug(1, stderr);

	strcpy(msg, "connect");
	{ ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0); 
#line 23 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 23 "whenever_do_continue.pgc"


	strcpy(msg, "create");
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table emp ( ename varchar , sal double precision , comm double precision )", ECPGt_EOIT, ECPGt_EORT);
#line 26 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 26 "whenever_do_continue.pgc"


	strcpy(msg, "insert");
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into emp values ( 'Ram' , 111100 , 21 )", ECPGt_EOIT, ECPGt_EORT);
#line 29 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 29 "whenever_do_continue.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into emp values ( 'aryan' , 11110 , null )", ECPGt_EOIT, ECPGt_EORT);
#line 30 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 30 "whenever_do_continue.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into emp values ( 'josh' , 10000 , 10 )", ECPGt_EOIT, ECPGt_EORT);
#line 31 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 31 "whenever_do_continue.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into emp values ( 'tom' , 20000 , null )", ECPGt_EOIT, ECPGt_EORT);
#line 32 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 32 "whenever_do_continue.pgc"


	/* declare c cursor for select ename , sal , comm from emp order by ename collate \"C\" asc */
#line 34 "whenever_do_continue.pgc"


	{ ECPGopen("c", NULL, __LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c cursor for select ename , sal , comm from emp order by ename collate \"C\" asc", ECPGt_EOIT, ECPGt_EORT);
#line 36 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) exit (1);}
#line 36 "whenever_do_continue.pgc"


	/* The 'BREAK' condition to exit the loop. */
	/* exec sql whenever not found  break ; */
#line 39 "whenever_do_continue.pgc"


	/* The DO CONTINUE makes the loop start at the next iteration when an error occurs.*/
	/* exec sql whenever sqlerror  continue ; */
#line 42 "whenever_do_continue.pgc"


	for (loopcount = 0; loopcount < 100; loopcount++)
	{
		{ ECPGfetch("c", __LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch c", ECPGt_EOIT, 
	ECPGt_char,&(emp.ename),(long)12,(long)1,(12)*sizeof(char), 
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
	ECPGt_float,&(emp.sal),(long)1,(long)1,sizeof(float), 
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, 
	ECPGt_float,&(emp.comm),(long)1,(long)1,sizeof(float), 
	ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
#line 46 "whenever_do_continue.pgc"

if (sqlca.sqlcode == ECPG_NOT_FOUND) break;
#line 46 "whenever_do_continue.pgc"

if (sqlca.sqlcode < 0) continue;}
#line 46 "whenever_do_continue.pgc"

		/* 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 ; */
#line 55 "whenever_do_continue.pgc"


	{ ECPGclose("c", __LINE__, 0, 1, NULL, 0, ECPGst_normal, "close c", ECPGt_EOIT, ECPGt_EORT);}
#line 57 "whenever_do_continue.pgc"


	strcpy(msg, "drop");
	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table emp", ECPGt_EOIT, ECPGt_EORT);}
#line 60 "whenever_do_continue.pgc"


	exit(0);
}
