* Standard COBOL (file "DML134.SCO") calling SQL * procedures in file "DML134.MCO".
**************************************************************** * * COMMENT SECTION * * DATE 1994/8/19 STANDARD COBOL LANGUAGE * NIST SQL VALIDATION TEST SUITE V6.0 * DISCLAIMER: * This program was written by employees of NIST to test SQL * implementations for conformance to the SQL standards. * NIST assumes no responsibility for any party's use of * this program. * * DML134.SCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * This program tests the Information Schema and tests multiple * Trans SQL features together. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB3"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB4"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB5"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13411 FROM :longst;" * EXEC SQL PREPARE S13411 FROM :longst; CALL"SUB6"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13411 CURSOR FOR S13411;" * EXEC SQL DECLARE C13411 CURSOR FOR S13411 END-EXEC
DISPLAY"OPEN C13411;" * EXEC SQL OPEN C13411; CALL"SUB7"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13411 INTO :int1;" * EXEC SQL FETCH C13411 INTO :int1; CALL"SUB8"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13411;" * EXEC SQL CLOSE C13411; CALL"SUB9"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB10"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB11"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB12"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13412 FROM :longst;" * EXEC SQL PREPARE S13412 FROM :longst; CALL"SUB13"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13412 CURSOR FOR S13412;" * EXEC SQL DECLARE C13412 CURSOR FOR S13412 END-EXEC
DISPLAY"OPEN C13412;" * EXEC SQL OPEN C13412; CALL"SUB14"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13412 INTO :int1;" * EXEC SQL FETCH C13412 INTO :int1; CALL"SUB15"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13412;" * EXEC SQL CLOSE C13412; CALL"SUB16"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB20"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB21"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB22"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13413 FROM :longst;" * EXEC SQL PREPARE S13413 FROM :longst; CALL"SUB23"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13413 CURSOR FOR S13413;" * EXEC SQL DECLARE C13413 CURSOR FOR S13413 END-EXEC
DISPLAY"OPEN C13413;" * EXEC SQL OPEN C13413; CALL"SUB24"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13413 INTO :int1;" * EXEC SQL FETCH C13413 INTO :int1; CALL"SUB25"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13413;" * EXEC SQL CLOSE C13413; CALL"SUB26"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB27"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB28"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB29"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13414 FROM :longst;" * EXEC SQL PREPARE S13414 FROM :longst; CALL"SUB30"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13414 CURSOR FOR S13414;" * EXEC SQL DECLARE C13414 CURSOR FOR S13414 END-EXEC
DISPLAY"OPEN C13414;" * EXEC SQL OPEN C13414; CALL"SUB31"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13414 INTO :int1;" * EXEC SQL FETCH C13414 INTO :int1; CALL"SUB32"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13414;" * EXEC SQL CLOSE C13414; CALL"SUB33"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB37"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB38"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB39"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13415 FROM :longst;" * EXEC SQL PREPARE S13415 FROM :longst; CALL"SUB40"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13415 CURSOR FOR S13415;" * EXEC SQL DECLARE C13415 CURSOR FOR S13415 END-EXEC
DISPLAY"OPEN C13415;" * EXEC SQL OPEN C13415; CALL"SUB41"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13415 INTO :int1;" * EXEC SQL FETCH C13415 INTO :int1; CALL"SUB42"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13415;" * EXEC SQL CLOSE C13415; CALL"SUB43"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB44"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB45"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB46"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13416 FROM :longst;" * EXEC SQL PREPARE S13416 FROM :longst; CALL"SUB47"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13416 CURSOR FOR S13416;" * EXEC SQL DECLARE C13416 CURSOR FOR S13416 END-EXEC
DISPLAY"OPEN C13416;" * EXEC SQL OPEN C13416; CALL"SUB48"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13416 INTO :int1;" * EXEC SQL FETCH C13416 INTO :int1; CALL"SUB49"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13416;" * EXEC SQL CLOSE C13416; CALL"SUB50"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB54"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB55"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB56"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13417 FROM :longst;" * EXEC SQL PREPARE S13417 FROM :longst; CALL"SUB57"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13417 CURSOR FOR S13417;" * EXEC SQL DECLARE C13417 CURSOR FOR S13417 END-EXEC
DISPLAY"OPEN C13417;" * EXEC SQL OPEN C13417; CALL"SUB58"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13417 INTO :int1;" * EXEC SQL FETCH C13417 INTO :int1; CALL"SUB59"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13417;" * EXEC SQL CLOSE C13417; CALL"SUB60"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB61"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' || * ' WHERE TABLE_SCHEM = ''FLATER'' AND' || * ' TABLE_NAME = ''VISCHANGE''' * ); CALL"SUB62"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB63"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S13418 FROM :longst;" * EXEC SQL PREPARE S13418 FROM :longst; CALL"SUB64"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C13418 CURSOR FOR S13418;" * EXEC SQL DECLARE C13418 CURSOR FOR S13418 END-EXEC
DISPLAY"OPEN C13418;" * EXEC SQL OPEN C13418; CALL"SUB65"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO int1 DISPLAY"FETCH C13418 INTO :int1;" * EXEC SQL FETCH C13418 INTO :int1; CALL"SUB66"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE C13418;" * EXEC SQL CLOSE C13418; CALL"SUB67"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* EXEC SQL COMMIT WORK; CALL"SUB71"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0688 ******************** ******************** BEGIN TEST0689 ******************* MOVE 1 TO flag
DISPLAY"CREATE VIEW INCOMPLETES AS" DISPLAY" SELECT ITEMTEXT, CONDTEXT, COSTTEXT" DISPLAY" FROM INVENTORY, COST_CODES, CONDITION_CODES,
- " ITEM_CODES" DISPLAY" WHERE INVENTORY.ITEMCODE =
- " ITEM_CODES.ITEMCODE" DISPLAY" AND ((INVENTORY.CONDCODE =
- " CONDITION_CODES.CONDCODE" DISPLAY" AND INVENTORY.COSTCODE IS NULL" DISPLAY" AND COST_CODES.COSTCODE IS NULL)" DISPLAY" OR (INVENTORY.COSTCODE =
- " COST_CODES.COSTCODE" DISPLAY" AND INVENTORY.CONDCODE IS NULL" DISPLAY" AND CONDITION_CODES.CONDCODE IS
- " NULL));" * EXEC SQL CREATE VIEW INCOMPLETES AS * SELECT ITEMTEXT, CONDTEXT, COSTTEXT * FROM INVENTORY, COST_CODES, CONDITION_CODES, ITEM_CODES * WHERE INVENTORY.ITEMCODE = ITEM_CODES.ITEMCODE * AND ((INVENTORY.CONDCODE = CONDITION_CODES.CONDCODE * AND INVENTORY.COSTCODE IS NULL * AND COST_CODES.COSTCODE IS NULL) * OR (INVENTORY.COSTCODE = COST_CODES.COSTCODE * AND INVENTORY.CONDCODE IS NULL * AND CONDITION_CODES.CONDCODE IS NULL)); CALL"SUB82"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO codev MOVE"Expensive " TO dstmt DISPLAY"codev = 0" DISPLAY"dstmt=""Expensive""" DISPLAY"EXECUTE S13421 USING :codev, :dstmt;" * EXEC SQL EXECUTE S13421 USING :codev, :dstmt; CALL"SUB88"USING SQLCODE SQLSTATE codev dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 1 TO codev MOVE"Absurdly expensive " TO dstmt DISPLAY"codev = 1" DISPLAY"dstmt=""Absurdly expensive""" DISPLAY"EXECUTE S13421 USING :codev, :dstmt;" * EXEC SQL EXECUTE S13421 USING :codev, :dstmt; CALL"SUB89"USING SQLCODE SQLSTATE codev dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 2 TO codev MOVE"Outrageously expensive " TO dstmt DISPLAY"codev = 2" DISPLAY"dstmt=""Outrageously expensive""" DISPLAY"EXECUTE S13421 USING :codev, :dstmt;" * EXEC SQL EXECUTE S13421 USING :codev, :dstmt; CALL"SUB90"USING SQLCODE SQLSTATE codev dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 3 TO codev MOVE"Robbery; a complete and total rip-off
- " "TO dstmt DISPLAY"codev = 3" DISPLAY"dstmt=""Robbery; a complete and total rip-off""" DISPLAY"EXECUTE S13421 USING :codev, :dstmt;" * EXEC SQL EXECUTE S13421 USING :codev, :dstmt; CALL"SUB91"USING SQLCODE SQLSTATE codev dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"dstmt=""INSERT INTO CONDITION_CODES VALUES (?,
- " TRIM (?))""" MOVE"INSERT INTO CONDITION_CODES VALUES (?, TRIM (?)) " TO dstmt
DISPLAY"PREPARE S13422 FROM :dstmt;" * EXEC SQL PREPARE S13422 FROM :dstmt; CALL"SUB92"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 1 TO int1 MOVE 2 TO int2 MOVE 3 TO int3 DISPLAY"int1 = 1" DISPLAY"int2 = 2" DISPLAY"int3 = 3" DISPLAY"EXECUTE S13424 USING :int1, :int2, :int3;" * EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3; CALL"SUB104"USING SQLCODE SQLSTATE int1 int2 int3 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 2 TO int1 MOVE 3 TO int2 MOVE 7 TO int3 DISPLAY"int1 = 2" DISPLAY"int2 = 3" DISPLAY"int3 = 7" DISPLAY"EXECUTE S13424 USING :int1, :int2, :int3;" * EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3; CALL"SUB105"USING SQLCODE SQLSTATE int1 int2 int3 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO int1 MOVE 3 TO int2 MOVE 1 TO int3 DISPLAY"int1 = 0" DISPLAY"int2 = 3" DISPLAY"int3 = 1" DISPLAY"EXECUTE S13424 USING :int1, :int2, :int3;" * EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3; CALL"SUB106"USING SQLCODE SQLSTATE int1 int2 int3 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 3 TO int1 MOVE 1 TO int2 MOVE 7 TO int3 DISPLAY"int1 = 3" DISPLAY"int2 = 1" DISPLAY"int3 = 7" DISPLAY"EXECUTE S13424 USING :int1, :int2, :int3;" * EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3; CALL"SUB107"USING SQLCODE SQLSTATE int1 int2 int3 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*End of data loading
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV;" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * ; CALL"SUB108"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5; its value is ", int1 if (int1 NOT = 5) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM INCOMPLETES;" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM INCOMPLETES * ; CALL"SUB109"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM COMPLETES;" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM COMPLETES; CALL"SUB110"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4; its value is ", int1 if (int1 NOT = 4) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV" DISPLAY" WHERE ITEMTEXT = 'Irreparable intermittent CD
- " player'" DISPLAY" AND CONDTEXT = 'Unknown'" DISPLAY" AND COSTTEXT = 'Robbery; a complete and total
- " rip-off';" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * WHERE ITEMTEXT = 'Irreparable intermittent CD player' * AND CONDTEXT = 'Unknown' * AND COSTTEXT = 'Robbery; a complete and total rip-off' * ; CALL"SUB111"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV" DISPLAY" WHERE ITEMTEXT = 'Lousy excuse for a tape deck'" DISPLAY" AND CONDTEXT = 'Visibly damaged (no returns)'" DISPLAY" AND COSTTEXT = 'Expensive';" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * WHERE ITEMTEXT = 'Lousy excuse for a tape deck' * AND CONDTEXT = 'Visibly damaged (no returns)' * AND COSTTEXT = 'Expensive'; CALL"SUB112"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV" DISPLAY" WHERE ITEMTEXT =" DISPLAY" 'Self-destruct VGA monitor w/ critical need
- " detect'" DISPLAY" AND CONDTEXT = 'Slightly used'" DISPLAY" AND COSTTEXT = 'Robbery; a complete and total
- " rip-off';" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * WHERE ITEMTEXT = * 'Self-destruct VGA monitor w/ critical need detect' * AND CONDTEXT = 'Slightly used' * AND COSTTEXT = 'Robbery; a complete and total rip-off' * ; CALL"SUB113"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV" DISPLAY" WHERE ITEMTEXT =" DISPLAY" 'Self-destruct VGA monitor w/ critical need
- " detect'" DISPLAY" AND CONDTEXT = 'Visibly damaged (no returns)'" DISPLAY" AND COSTTEXT = 'Outrageously expensive';" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * WHERE ITEMTEXT = * 'Self-destruct VGA monitor w/ critical need detect' * AND CONDTEXT = 'Visibly damaged (no returns)' * AND COSTTEXT = 'Outrageously expensive'; CALL"SUB114"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV" DISPLAY" WHERE ITEMTEXT = 'World''s worst VCR'" DISPLAY" AND CONDTEXT = 'Returned as defective'" DISPLAY" AND COSTTEXT = 'Absurdly expensive';" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV * WHERE ITEMTEXT = 'World''s worst VCR' * AND CONDTEXT = 'Returned as defective' * AND COSTTEXT = 'Absurdly expensive'; CALL"SUB115"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB127"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0689 ******************** ******************** BEGIN TEST0690 ******************* MOVE 1 TO flag
DISPLAY"CREATE VIEW GAPS AS" DISPLAY" SELECT * FROM PORGRAM AS OUTERR WHERE NOT
- " EXISTS" DISPLAY" (SELECT * FROM PORGRAM AS INNERR WHERE
- " OUTERR.STARTS" DISPLAY" + OUTERR.LASTS = INNERR.STARTS);" * EXEC SQL CREATE VIEW GAPS AS * SELECT * FROM PORGRAM AS OUTERR WHERE NOT EXISTS * (SELECT * FROM PORGRAM AS INNERR WHERE OUTERR.STARTS * + OUTERR.LASTS = INNERR.STARTS); CALL"SUB130"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 1, TIME '12:00:00'," DISPLAY" CAST ('10:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Monologue');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 1, TIME '12:00:00', * CAST ('10:00' AS INTERVAL MINUTE TO SECOND), * 'Monologue'); CALL"SUB132"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 2, TIME '12:10:00'," DISPLAY" CAST ('04:30' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 2, TIME '12:10:00', * CAST ('04:30' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials'); CALL"SUB133"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 3, TIME '12:14:30'," DISPLAY" CAST ('12:30' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Braunschweiger, plug Explosion Man II');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 3, TIME '12:14:30', * CAST ('12:30' AS INTERVAL MINUTE TO SECOND), * 'Braunschweiger, plug Explosion Man II'); CALL"SUB134"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 4, TIME '12:27:00'," DISPLAY" CAST ('03:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 4, TIME '12:27:00', * CAST ('03:00' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials'); CALL"SUB135"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 5, TIME '12:30:00'," DISPLAY" CAST ('00:10' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Tease');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 5, TIME '12:30:00', * CAST ('00:10' AS INTERVAL MINUTE TO SECOND), * 'Tease'); CALL"SUB136"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 6, TIME '12:30:10'," DISPLAY" CAST ('03:50' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials, local news');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 6, TIME '12:30:10', * CAST ('03:50' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials, local news'); CALL"SUB137"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 7, TIME '12:34:00'," DISPLAY" CAST ('11:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Spinal Tap, plug Asexual Harassment');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 7, TIME '12:34:00', * CAST ('11:00' AS INTERVAL MINUTE TO SECOND), * 'Spinal Tap, plug Asexual Harassment'); CALL"SUB138"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 8, TIME '12:45:00'," DISPLAY" CAST ('05:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 8, TIME '12:45:00', * CAST ('05:00' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials'); CALL"SUB139"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 9, TIME '12:50:00'," DISPLAY" CAST ('05:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Spinal Tap, play Ode du Toilette');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 9, TIME '12:50:00', * CAST ('05:00' AS INTERVAL MINUTE TO SECOND), * 'Spinal Tap, play Ode du Toilette'); CALL"SUB140"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 10, TIME '12:55:00'," DISPLAY" CAST ('03:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 10, TIME '12:55:00', * CAST ('03:00' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials'); CALL"SUB141"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 11, TIME '12:58:00'," DISPLAY" CAST ('00:10' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Credits');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 11, TIME '12:58:00', * CAST ('00:10' AS INTERVAL MINUTE TO SECOND), * 'Credits'); CALL"SUB142"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 12, TIME '12:58:10'," DISPLAY" CAST ('01:50' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'Stupid commercials');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 12, TIME '12:58:10', * CAST ('01:50' AS INTERVAL MINUTE TO SECOND), * 'Stupid commercials'); CALL"SUB143"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO PORGRAM VALUES (" DISPLAY" 13, TIME '13:00:00'," DISPLAY" CAST ('00:00' AS INTERVAL MINUTE TO SECOND)," DISPLAY" 'END');" * EXEC SQL INSERT INTO PORGRAM VALUES ( * 13, TIME '13:00:00', * CAST ('00:00' AS INTERVAL MINUTE TO SECOND), * 'END'); CALL"SUB144"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*In the beginning, all was good.
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM GAPS;" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM GAPS; CALL"SUB145"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
*Braunschweiger was late. Move up Spinal Tap.
DISPLAY"UPDATE PORGRAM" DISPLAY" SET STARTS = TIME '12:14:30'" DISPLAY" WHERE SEGNO = 7;" * EXEC SQL UPDATE PORGRAM * SET STARTS = TIME '12:14:30' * WHERE SEGNO = 7; CALL"SUB146"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"UPDATE PORGRAM SET STARTS = STARTS -" DISPLAY" CAST ('01:30' AS INTERVAL MINUTE TO SECOND)" DISPLAY" WHERE SEGNO >= 4 AND SEGNO <= 6;" * EXEC SQL UPDATE PORGRAM SET STARTS = STARTS - * CAST ('01:30' AS INTERVAL MINUTE TO SECOND) * WHERE SEGNO >= 4 AND SEGNO <= 6; CALL"SUB147"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"UPDATE PORGRAM SET STARTS = TIME '12:28:40' +" DISPLAY" CAST ('03:50' AS INTERVAL MINUTE TO SECOND)" DISPLAY" WHERE SEGNO = 3;" * EXEC SQL UPDATE PORGRAM SET STARTS = TIME '12:28:40' + * CAST ('03:50' AS INTERVAL MINUTE TO SECOND) * WHERE SEGNO = 3; CALL"SUB148"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"SELECT COUNT(*) INTO :int1 FROM GAPS;" * EXEC SQL SELECT COUNT(*) INTO :int1 FROM GAPS; CALL"SUB149"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 if (int1 NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"DECLARE ARNOLD CURSOR FOR" DISPLAY" SELECT SEGNO FROM PORGRAM ORDER BY STARTS;" * EXEC SQL DECLARE ARNOLD CURSOR FOR * SELECT SEGNO FROM PORGRAM ORDER BY STARTS END-EXEC
DISPLAY"OPEN ARNOLD;" * EXEC SQL OPEN ARNOLD; CALL"SUB150"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB151"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1; its value is ", int1 if (int1 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB152"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2; its value is ", int1 if (int1 NOT = 2) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB153"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 7; its value is ", int1 if (int1 NOT = 7) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB154"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4; its value is ", int1 if (int1 NOT = 4) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB155"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5; its value is ", int1 if (int1 NOT = 5) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB156"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 6; its value is ", int1 if (int1 NOT = 6) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB157"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 3; its value is ", int1 if (int1 NOT = 3) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB158"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 8; its value is ", int1 if (int1 NOT = 8) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB159"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 9; its value is ", int1 if (int1 NOT = 9) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB160"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 10; its value is ", int1 if (int1 NOT = 10) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB161"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 11; its value is ", int1 if (int1 NOT = 11) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB162"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 12; its value is ", int1 if (int1 NOT = 12) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"FETCH ARNOLD INTO :int1;" * EXEC SQL FETCH ARNOLD INTO :int1; CALL"SUB163"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 13; its value is ", int1 if (int1 NOT = 13) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE ARNOLD;" * EXEC SQL CLOSE ARNOLD; CALL"SUB164"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
--> --------------------
--> maximum size reached
--> --------------------
¤ Dauer der Verarbeitung: 0.30 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.