* Standard COBOL (file "DML085.SCO") calling SQL * procedures in file "DML085.MCO". * STANDARD COBOL (file "DML085.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1992/07/20 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. * * DML085.SCO * WRITTEN BY: DAVID W. FLATER * * THIS ROUTINE TESTS NEW ENTRY SQL REQUIREMENTS THAT WERE * NOT REQUIREMENTS FOR SQL '89, INCLUDING DELIMITED * IDENTIFIERS AND RENAMING COLUMNS. * * REFERENCES * FIPS PUB 127-2 * Section 13 New FIPS SQL Requirements * ****************************************************************
MOVE"SCHANZLE"TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx * EXEC SQL SELECT USER INTO :uidx FROM HU.ECCO; CALL"SUB1"USINGSQLCODE uidx MOVESQLCODETO SQL-COD if (uid NOT = uidx) then DISPLAY"ERROR: User ", uid " expected. User ", uidx "
- " connected" STOPRUN END-IF MOVE 0 TO errcnt MOVE 1 TO flag
DISPLAY "SQL Test Suite, V6.0, Standard COBOL, dml085.sco" DISPLAY "59-byte ID" DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
******************** BEGIN TEST0508 ******************* MOVE 1 TO flag
DISPLAY" TEST0508 " DISPLAY" Delimited identifiers" DISPLAY"Reference ANSI SQL-1992," DISPLAY" section 5.2 <token> and <separator>" DISPLAY" Format of <delimited identifier> and " DISPLAY" SR3,SR4,SR10,SR11,SR12,SR13,SR14 and " DISPLAY" Leveling Rules 2a and 2b " DISPLAY" section 5.1 <SQL terminal character>" DISPLAY" - - - - - - - - - - - - - - - - - - -"
COMPUTE tmpcnt = -1 DISPLAY"SELECT COUNT(DISTINCT ""sullivan.select"") INTO
- " :tmpcnt FROM" DISPLAY" ""FLATER"".""SULLIVAN.SELECT"";" * EXEC SQL SELECT COUNT(DISTINCT "sullivan.select") INTO * :tmpcnt * FROM "FLATER"."SULLIVAN.SELECT"; CALL"SUB2"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD
DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 2; its value is ", tmpcnt
if (SQLCODENOT = 0 OR tmpcnt NOT = 2) then MOVE 0 TO flag END-IF
COMPUTE grd = -1 DISPLAY" " DISPLAY"DECLARE ""A < a"" CURSOR FOR" DISPLAY" SELECT ""A<a"".""sullivan.select""" DISPLAY" FROM ""FLATER"".""SULLIVAN.SELECT"" ""A<a"";" * EXEC SQL DECLARE "A < a" CURSOR FOR * SELECT "A<a"."sullivan.select" * FROM "FLATER"."SULLIVAN.SELECT" "A<a" END-EXEC
DISPLAY"OPEN ""A < a"";" * EXEC SQL OPEN "A < a"; CALL"SUB3"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"FETCH ""A < a"" INTO :grd;" * EXEC SQL FETCH "A < a" INTO :grd; CALL"SUB4"USINGSQLCODE grd MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"CLOSE ""A < a"";" * EXEC SQL CLOSE "A < a"; CALL"SUB5"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY"grd should be 0 or 1; its value is ", grd
if (grd NOT = 0 AND grd NOT = 1) then MOVE 0 TO flag END-IF
*Test a single digit
DISPLAY" " DISPLAY"DECLARE ""0"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "0" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""0"";" * EXEC SQL OPEN "0"; CALL"SUB6"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""0"" INTO :tmpcnt;" * EXEC SQL FETCH "0" INTO :tmpcnt; CALL"SUB7"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""0"";" * EXEC SQL CLOSE "0"; CALL"SUB8"USINGSQLCODE MOVESQLCODETO SQL-COD
*Test all special characters singly
DISPLAY" " DISPLAY"DECLARE """""""" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE """" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN """""""";" * EXEC SQL OPEN """"; CALL"SUB9"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH """""""" INTO :tmpcnt;" * EXEC SQL FETCH """" INTO :tmpcnt; CALL"SUB10"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE """""""";" * EXEC SQL CLOSE """"; CALL"SUB11"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""%"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "%" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""%"";" * EXEC SQL OPEN "%"; CALL"SUB12"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""%"" INTO :tmpcnt;" * EXEC SQL FETCH "%" INTO :tmpcnt; CALL"SUB13"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""%"";" * EXEC SQL CLOSE "%"; CALL"SUB14"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""&"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "&" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""&"";" * EXEC SQL OPEN "&"; CALL"SUB15"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""&"" INTO :tmpcnt;" * EXEC SQL FETCH "&" INTO :tmpcnt; CALL"SUB16"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""&"";" * EXEC SQL CLOSE "&"; CALL"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""'"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "'" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""'"";" * EXEC SQL OPEN "'"; CALL"SUB18"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""'"" INTO :tmpcnt;" * EXEC SQL FETCH "'" INTO :tmpcnt; CALL"SUB19"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""'"";" * EXEC SQL CLOSE "'"; CALL"SUB20"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""("" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "(" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""("";" * EXEC SQL OPEN "("; CALL"SUB21"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""("" INTO :tmpcnt;" * EXEC SQL FETCH "(" INTO :tmpcnt; CALL"SUB22"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""("";" * EXEC SQL CLOSE "("; CALL"SUB23"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "")"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE ")" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "")"";" * EXEC SQL OPEN ")"; CALL"SUB24"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH "")"" INTO :tmpcnt;" * EXEC SQL FETCH ")" INTO :tmpcnt; CALL"SUB25"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE "")"";" * EXEC SQL CLOSE ")"; CALL"SUB26"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""*"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "*" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""*"";" * EXEC SQL OPEN "*"; CALL"SUB27"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""*"" INTO :tmpcnt;" * EXEC SQL FETCH "*" INTO :tmpcnt; CALL"SUB28"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""*"";" * EXEC SQL CLOSE "*"; CALL"SUB29"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""+"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "+" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""+"";" * EXEC SQL OPEN "+"; CALL"SUB30"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""+"" INTO :tmpcnt;" * EXEC SQL FETCH "+" INTO :tmpcnt; CALL"SUB31"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""+"";" * EXEC SQL CLOSE "+"; CALL"SUB32"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "","" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "," CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "","";" * EXEC SQL OPEN ","; CALL"SUB33"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH "","" INTO :tmpcnt;" * EXEC SQL FETCH "," INTO :tmpcnt; CALL"SUB34"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE "","";" * EXEC SQL CLOSE ","; CALL"SUB35"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""-"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "-" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""-"";" * EXEC SQL OPEN "-"; CALL"SUB36"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""-"" INTO :tmpcnt;" * EXEC SQL FETCH "-" INTO :tmpcnt; CALL"SUB37"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""-"";" * EXEC SQL CLOSE "-"; CALL"SUB38"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""."" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "." CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""."";" * EXEC SQL OPEN "."; CALL"SUB39"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""."" INTO :tmpcnt;" * EXEC SQL FETCH "." INTO :tmpcnt; CALL"SUB40"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""."";" * EXEC SQL CLOSE "."; CALL"SUB41"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""/"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "/" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""/"";" * EXEC SQL OPEN "/"; CALL"SUB42"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""/"" INTO :tmpcnt;" * EXEC SQL FETCH "/" INTO :tmpcnt; CALL"SUB43"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""/"";" * EXEC SQL CLOSE "/"; CALL"SUB44"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "":"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE ":" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "":"";" * EXEC SQL OPEN ":"; CALL"SUB45"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH "":"" INTO :tmpcnt;" * EXEC SQL FETCH ":" INTO :tmpcnt; CALL"SUB46"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE "":"";" * EXEC SQL CLOSE ":"; CALL"SUB47"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "";"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE ";" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "";"";" * EXEC SQL OPEN ";"; CALL"SUB48"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH "";"" INTO :tmpcnt;" * EXEC SQL FETCH ";" INTO :tmpcnt; CALL"SUB49"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE "";"";" * EXEC SQL CLOSE ";"; CALL"SUB50"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""<"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "<" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""<"";" * EXEC SQL OPEN "<"; CALL"SUB51"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""<"" INTO :tmpcnt;" * EXEC SQL FETCH "<" INTO :tmpcnt; CALL"SUB52"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""<"";" * EXEC SQL CLOSE "<"; CALL"SUB53"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""="" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "=" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""="";" * EXEC SQL OPEN "="; CALL"SUB54"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""="" INTO :tmpcnt;" * EXEC SQL FETCH "=" INTO :tmpcnt; CALL"SUB55"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""="";" * EXEC SQL CLOSE "="; CALL"SUB56"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "">"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE ">" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "">"";" * EXEC SQL OPEN ">"; CALL"SUB57"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH "">"" INTO :tmpcnt;" * EXEC SQL FETCH ">" INTO :tmpcnt; CALL"SUB58"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE "">"";" * EXEC SQL CLOSE ">"; CALL"SUB59"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""?"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "?" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""?"";" * EXEC SQL OPEN "?"; CALL"SUB60"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""?"" INTO :tmpcnt;" * EXEC SQL FETCH "?" INTO :tmpcnt; CALL"SUB61"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""?"";" * EXEC SQL CLOSE "?"; CALL"SUB62"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""_"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "_" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""_"";" * EXEC SQL OPEN "_"; CALL"SUB63"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""_"" INTO :tmpcnt;" * EXEC SQL FETCH "_" INTO :tmpcnt; CALL"SUB64"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""_"";" * EXEC SQL CLOSE "_"; CALL"SUB65"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""|"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "|" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""|"";" * EXEC SQL OPEN "|"; CALL"SUB66"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""|"" INTO :tmpcnt;" * EXEC SQL FETCH "|" INTO :tmpcnt; CALL"SUB67"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""|"";" * EXEC SQL CLOSE "|"; CALL"SUB68"USINGSQLCODE MOVESQLCODETO SQL-COD
*All together now.... Some are missing due to 18 char max
DISPLAY" " DISPLAY"DECLARE ""|_?=;:/. -,+*)'&""""%"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" * EXEC SQL DECLARE "|_?=;:/. -,+*)'&""%" CURSOR FOR * SELECT COUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""|_?=;:/. -,+*)'&""""%"";" * EXEC SQL OPEN "|_?=;:/. -,+*)'&""%"; CALL"SUB69"USINGSQLCODE MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODENOT = 0) then MOVE 0 TO flag END-IF COMPUTE tmpcnt = -1 DISPLAY"FETCH ""|_?=;:/. -,+*)'&""""%"" INTO :tmpcnt;" * EXEC SQL FETCH "|_?=;:/. -,+*)'&""%" INTO :tmpcnt; CALL"SUB70"USINGSQLCODE tmpcnt MOVESQLCODETO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"tmpcnt should be 5; its value is ", tmpcnt if (SQLCODENOT = 0 OR tmpcnt NOT = 5) then MOVE 0 TO flag END-IF DISPLAY"CLOSE ""|_?=;:/. -,+*)'&""""%"";" * EXEC SQL CLOSE "|_?=;:/. -,+*)'&""%"; CALL"SUB71"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL COMMIT WORK; CALL"SUB75"USINGSQLCODE MOVESQLCODETO SQL-COD ******************** END TEST0508 ******************** ******************** BEGIN TEST0509 ******************* MOVE 1 TO flag
DISPLAY" " DISPLAY"DECLARE CHEDDAR CURSOR FOR" DISPLAY"SELECT GRADE AS PROVOLONE, EMPNAME AS EDAM" DISPLAY"FROM HU.STAFF ORDER BY PROVOLONE, EDAM DESC;" * EXEC SQL DECLARE CHEDDAR CURSOR FOR * SELECT GRADE AS PROVOLONE, EMPNAME AS EDAM * FROM HU.STAFF * ORDER BY PROVOLONE, EDAM DESC END-EXEC
DISPLAY"OPEN CHEDDAR;" * EXEC SQL OPEN CHEDDAR; CALL"SUB76"USINGSQLCODE MOVESQLCODETO SQL-COD if (SQLCODE < 0) then GOTO P100 END-IF
COMPUTE oldgrd = -100
DISPLAY"FETCH CHEDDAR...."
.
P101. MOVE"x"TO nam COMPUTE grd = -1 * EXEC SQL FETCH CHEDDAR INTO :grd, :nam; CALL"SUB77"USINGSQLCODE grd nam MOVESQLCODETO SQL-COD if (SQLCODENOT = 0) then GOTO P100 END-IF DISPLAY nam " ", grd if (grd < oldgrd) then GOTO P102 END-IF MOVE grd TO oldgrd GOTO P101
.
P102. DISPLAY" " DISPLAY"ORDER BY violation" DISPLAY" " MOVE 0 TO flag
.
P100. DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD if (SQLCODE < 0) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB86"USINGSQLCODE MOVESQLCODETO SQL-COD ******************** END TEST0510 ******************** ******************** BEGIN TEST0554 ******************* MOVE 1 TO flag
MOVE"1234567890123456789"TO tc1 MOVE"1234567890123456789"TO tc2 COMPUTE ti = -1 *AS should be optional. DISPLAY" SELECT HU.PROJ.CITY AS PCITY, HU.STAFF.CITY
- " SCITY," DISPLAY" BUDGET + GRADE * HOURS * 100 REAL_BUDGET" DISPLAY" INTO :tc1, :tc2, :ti" DISPLAY" FROM HU.STAFF, HU.PROJ, HU.WORKS" DISPLAY" WHERE HU.WORKS.EMPNUM = HU.STAFF.EMPNUM" DISPLAY" AND HU.WORKS.PNUM = HU.PROJ.PNUM" DISPLAY" AND EMPNAME = 'Alice'" DISPLAY" AND HU.PROJ.PNUM = 'P3';" * EXEC SQL SELECT HU.PROJ.CITY AS PCITY, HU.STAFF.CITY SCITY, * BUDGET + GRADE * HOURS * 100 REAL_BUDGET * INTO :tc1, :tc2, :ti * FROM HU.STAFF, HU.PROJ, HU.WORKS * WHERE HU.WORKS.EMPNUM = HU.STAFF.EMPNUM * AND HU.WORKS.PNUM = HU.PROJ.PNUM * AND EMPNAME = 'Alice' * AND HU.PROJ.PNUM = 'P3'; CALL"SUB87"USINGSQLCODE tc1 tc2 ti MOVESQLCODETO SQL-COD
DISPLAY"tc1 should be Tampa; its value is ", tc1 DISPLAY"tc2 should be Deale; its value is ", tc2 DISPLAY"ti should be 126000; its value is ", ti DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (tc1 NOT = "Tampa") then MOVE 0 TO flag END-IF if (tc2 NOT = "Deale") then MOVE 0 TO flag END-IF if (ti NOT = 126000 ORSQLCODENOT = 0) then MOVE 0 TO flag END-IF
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 und die Messung sind noch experimentell.