cat > script.cc <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
#include	<mscc.h>
#include <stdlib.h>
void	error	(int	i);
EXEC SQL INCLUDE SQLCA;
EXEC SQL BEGIN DECLARE SECTION ;
char name[25],date[21],amount[9];
char name1[25],date1[21],amount1[9];
EXEC SQL END DECLARE SECTION ;
int	main (int argc, char** argv)
{
	EXEC SQL INIT;
	EXEC SQL DATABASE IS "TEST_DATABASE";
	EXEC SQL DECLARE c CURSOR FOR SELECT DISTINCT FROM loans  
	FOR UPDATE OF name;
	EXEC SQL OPEN c;
	if(SQLCODE != 0) error(1);
	printf("open c ok\n");
	do {
	EXEC SQL FETCH c name,date,amount INTO :name,:date,:amount;
	switch (SQLCODE) {
		case 0 : printf("%s %s %s \n",name,date,amount);
	EXEC SQL UPDATE loans SET name="DATAWARE" WHERE CURRENT OF c;
			 break;
		case 100: break;
		case 1 : printf(" lock busy\n");
			 break;
		default : error(2);
		}
	} while(SQLCODE == 0);
	EXEC SQL INSERT INTO loans SET name,date,amount VALUES "RHODNIUS",
		:date,:amount;
	if(SQLCODE != 0) error(3);
	printf("insert ok\n");
	EXEC SQL CLOSE c;
	printf("close c ok\n");
	EXEC SQL DECLARE d CURSOR FOR SELECT FROM loans;
	EXEC SQL OPEN d;
	if(SQLCODE != 0) error(4);
	printf("open d ok\n");
	do {
	EXEC SQL FETCH d name,date,amount INTO :name,:date,:amount;
	switch (SQLCODE) {
		case 0 : printf("%s %s %s \n",name,date,amount);
			 if(!strcmp(name,"RHODNIUS"))
	EXEC SQL DELETE FROM loans WHERE CURRENT OF d;
			 break;
		case 100: break;
		case 1 : printf(" lock busy\n");
			 break;
		default : error(5);
		}
	} while(SQLCODE == 0);
	EXEC SQL CLOSE d;
	printf("close d ok\n");
	EXEC SQL SELECT name,date,amount FROM loans INTO :name1,:date1,:amount1 
	   WHERE name = "RHODNIUS";
	if(SQLCODE != 100) error(6);
	printf("select 3 ok\n");
	EXEC SQL EXIT ;
	return 0;
}
void	error (int	i)
{
	printf("error number %d\n",i);
	printf("SQLCODE number %ld\n",SQLCODE);
	exit(1);
}
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 script.cc
cat > stdout <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
open c ok
Jones 7 February  1981 $33.95 
Jones 3 April     1981 $25.00 
Jones 12 August    1981 $300.00 
Kilroy 16 February  1981 $250.00 
Mosca 2 February  1981 $150.00 
Mosca 4 May       1981 $200.00 
Peterson 6 June      1981 $50.00 
Wladislaw 27 February  1981 $55.00 
Wladislaw 12 May       1981 $25.00 
Wladislaw 25 June      1981 $75.00 
insert ok
close c ok
open d ok
DATAWARE 2 February  1981 $150.00 
DATAWARE 7 February  1981 $33.95 
DATAWARE 16 February  1981 $250.00 
DATAWARE 27 February  1981 $55.00 
DATAWARE 3 April     1981 $25.00 
DATAWARE 4 May       1981 $200.00 
DATAWARE 12 May       1981 $25.00 
DATAWARE 6 June      1981 $50.00 
DATAWARE 25 June      1981 $75.00 
DATAWARE 12 August    1981 $300.00 
RHODNIUS 25 June      1981 $75.00 
close d ok
select 3 ok
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 stdout
cat > tag <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
Cursor manipulation (2)
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 tag
