cat > script.ff <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
	program bulk1
EXEC SQL INCLUDE SQLCA;
	integer error
	integer i
EXEC SQL BEGIN DECLARE SECTION;
        character *10 v_char1
        character *80 v_char2
        character *1  v_char3(80)
        integer *SIZE_OF_C_LONG v_longint
	integer *SIZE_OF_C_LONG v_int(10)
	common /bulk/v_longint,v_char2
	equivalence (v_char2,v_char3,v_int)
EXEC SQL END DECLARE SECTION;
EXEC SQL INIT;
EXEC SQL DATABASE IS "DATABASE";
EXEC SQL DECLARE c CURSOR FOR SELECT FROM type FOR DEFERRED OF a_char,a_bulk;
EXEC SQL OPEN c;
        if(SQLRET.NE.0) then
	error=1
	goto 10
	endif
50	continue
	do 200 i=1,80,1
	  v_char3(i) = char(0)
200	continue
EXEC SQL FETCH c a_char,a_bulk INTO :v_char1,:v_longint;
        if(SQLRET.EQ.0) then
	write (*,101) v_char1,v_longint,(v_char2(I:I), I=1,v_longint)
101     format (' ', A10, I10,' ', 40A)
	v_longint = 80
	do 210 i=1,10,1
	  v_int(i) = 100 + i
210	continue
EXEC SQL UPDATE type SET a_char="char3",a_bulk=:v_longint WHERE CURRENT OF c; 
        if(SQLRET.NE.0) then
	error=10
	goto 10
	endif
	goto 60
	endif
	if(SQLRET.EQ.100) goto 60
	if(SQLRET.EQ.1) then
	print *,' lock busy'
	goto 60
	endif
	error=2
	goto 10
60	if(SQLRET.EQ.0) goto 50
	EXEC SQL CLOSE c;

	v_longint = 80
	v_char1 = 'char2'
	do 220 i=1,10,1
	  v_int(i) = 10000 + i
220	continue
EXEC SQL INSERT INTO type (a_char,a_bulk) VALUES (:v_char1,:v_longint);
        if(SQLRET.NE.0) then
	error=3
	goto 10
	endif
	print *,'insert ok'
EXEC SQL OPEN c;
        if(SQLRET.NE.0) then
	error=4
	goto 10
	endif
150	continue
	do 230 i=1,80,1
	  v_char3(i) = char(0)
230	continue
EXEC SQL FETCH c a_char,a_bulk INTO :v_char1,:v_longint;
        if(SQLRET.EQ.0) then
	write (*,102) v_char1,v_longint
102     format (' ', A10,I10)
	write (*,103) v_int
103     format (' ', 10(I7))
	goto 160
	endif
	if(SQLRET.EQ.100) goto 160
	if(SQLRET.EQ.1) then
	print *,' lock busy'
	goto 160
	endif
	error=5
	goto 10
160	if(SQLRET.EQ.0) goto 150
EXEC SQL EXIT ;
	stop
10	print *,'error number ',error
	print *,'SQLRET number ',SQLRET
EXEC SQL EXIT ;
	stop
	end
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 script.ff
cat > sizelong.c <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
#include <stdio.h>
int main(int argc, char** argv)
{
	printf ("%d\n", sizeof (long));
	return 0;
}
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 sizelong.c
cat > stdout <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
char1             17 abcdefghijklmnopq
char              11 pqrstuvwxyz
insert ok
char3             80
101    102    103    104    105    106    107    108    109    110
char3             80
101    102    103    104    105    106    107    108    109    110
char2             80
10001  10002  10003  10004  10005  10006  10007  10008  10009  10010
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 stdout
cat > tag <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
bulk data handling
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 tag
