cat > script.ff <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
	program ctrl3
EXEC SQL INCLUDE SQLCA;
EXEC SQL WHENEVER SQLERROR GOTO 60;
EXEC SQL BEGIN DECLARE SECTION;
	character *25 name, date *20, amount *9, amt *9
	integer*2  i
EXEC SQL END DECLARE SECTION;
EXEC SQL INIT;
EXEC SQL DATABASE IS "DATABASE";
	amt = "300"

EXEC SQL DECLARE c CURSOR FOR SELECT FROM loans FOR UPDATE;
EXEC SQL OPEN c;
	i = -1
C	
C	insert nulls
C
EXEC SQL INSERT INTO loans SET name, date, amount values "DATAWARE",
		:date:i, :amount:i;
EXEC SQL CLOSE c;

EXEC SQL DECLARE d CURSOR FOR SELECT name, date, amount FROM loans 
		where name="DATAWARE" FOR UPDATE;
EXEC SQL OPEN d;
EXEC SQL WHENEVER NOT FOUND GOTO 30;
EXEC SQL FETCH d name, date, amount INTO :name, :date, :amount;
	write (*,101) name,date,amount
 101    format (' ', A25, A20, A8)
	print *, " "
 30	continue
EXEC SQL CLOSE d;
C
C	Even though amt = 300, this select will retrieve where amount is
C	null because control variable i is negative.
C
EXEC SQL DECLARE e CURSOR FOR SELECT FROM loans where amount = :amt:i;
EXEC SQL OPEN e;
EXEC SQL WHENEVER NOT FOUND GOTO 50;
 40	continue
EXEC SQL FETCH e name, date, amount INTO :name, :date, :amount;
	write (*,101) name,date,amount
	print *, " "
	goto 40
 50	continue 
EXEC SQL CLOSE e;
	i = 0
C
C	With control variable i set to 0, this select will retrieve the
C	record for which amount=amt=300.
C
EXEC SQL DECLARE f CURSOR FOR SELECT FROM loans where amount = :amt:i;
EXEC SQL OPEN f;
EXEC SQL WHENEVER NOT FOUND GOTO 70;
 60	continue
EXEC SQL FETCH f name, date, amount INTO :name, :date, :amount;
	write (*,101) name,date,amount
	goto 60
 70	continue 
EXEC SQL CLOSE f;
EXEC SQL EXIT;
	STOP
	END
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 script.ff
cat > stdout <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
DATAWARE                                             

DATAWARE                                             

Jones                    12 August    1981   $300.00 
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 stdout
cat > tag <<'+-+-+-+-+-END-OF-FILE-+-+-+-+-+'
Test of control variables in where clause.
+-+-+-+-+-END-OF-FILE-+-+-+-+-+
chmod 644 tag
