**************************************************************** * * COMMENT SECTION * * DATE 1992/07/20 EMBEDDED 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.PCO * 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 EXECSQLSELECT USER INTO :uidx FROM HU.ECCO END-EXEC 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, Embedded COBOL, dml085.pco" 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"";" EXECSQLSELECTCOUNT(DISTINCT "sullivan.select") INTO
:tmpcnt FROM FLATER.SULLIVAN.SELECTEND-EXEC 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"";" EXECSQLOPEN A END-EXEC 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;" EXECSQL FETCH A INTO :grd END-EXEC 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"";" EXECSQLCLOSE A END-EXEC 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;" EXECSQL DECLARE C0 CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""0"";" EXECSQLOPEN C0 END-EXEC 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;" EXECSQL FETCH C0 INTO :tmpcnt END-EXEC 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"";" EXECSQLCLOSE C0 END-EXEC MOVESQLCODETO SQL-COD
*Test all special characters singly
DISPLAY" " DISPLAY"DECLARE """""""" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN """""""";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 """""""";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""%"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""%"";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 ""%"";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""&"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""&"";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 ""&"";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""'"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""'"";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 ""'"";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""("" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""("";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 ""("";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "")"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "")"";" EXECSQLOPEN C END-EXEC 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;" EXECSQL FETCH C INTO :tmpcnt END-EXEC 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 "")"";" EXECSQLCLOSE C END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""*"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE C CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""*"";" EXECSQLOPEN"*"END-EXEC 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;" EXECSQL FETCH "*"INTO :tmpcnt END-EXEC 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 ""*"";" EXECSQLCLOSE"*"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""+"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "+" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""+"";" EXECSQLOPEN"+"END-EXEC 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;" EXECSQL FETCH "+"INTO :tmpcnt END-EXEC 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 ""+"";" EXECSQLCLOSE"+"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "","" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "," CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "","";" EXECSQLOPEN","END-EXEC 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;" EXECSQL FETCH ","INTO :tmpcnt END-EXEC 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 "","";" EXECSQLCLOSE","END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""-"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "-" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""-"";" EXECSQLOPEN"-"END-EXEC 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;" EXECSQL FETCH "-"INTO :tmpcnt END-EXEC 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 ""-"";" EXECSQLCLOSE"-"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""."" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "." CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""."";" EXECSQLOPEN"."END-EXEC 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;" EXECSQL FETCH "."INTO :tmpcnt END-EXEC 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 ""."";" EXECSQLCLOSE"."END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""/"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "/" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""/"";" EXECSQLOPEN"/"END-EXEC 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;" EXECSQL FETCH "/"INTO :tmpcnt END-EXEC 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 ""/"";" EXECSQLCLOSE"/"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "":"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE ":" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "":"";" EXECSQLOPEN":"END-EXEC 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;" EXECSQL FETCH ":"INTO :tmpcnt END-EXEC 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 "":"";" EXECSQLCLOSE":"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "";"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE ";" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "";"";" EXECSQLOPEN";"END-EXEC 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;" EXECSQL FETCH ";"INTO :tmpcnt END-EXEC 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 "";"";" EXECSQLCLOSE";"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""<"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "<" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""<"";" EXECSQLOPEN"<"END-EXEC 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;" EXECSQL FETCH "<"INTO :tmpcnt END-EXEC 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 ""<"";" EXECSQLCLOSE"<"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""="" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "=" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""="";" EXECSQLOPEN"="END-EXEC 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;" EXECSQL FETCH "="INTO :tmpcnt END-EXEC 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 ""="";" EXECSQLCLOSE"="END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE "">"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE ">" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN "">"";" EXECSQLOPEN">"END-EXEC 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;" EXECSQL FETCH ">"INTO :tmpcnt END-EXEC 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 "">"";" EXECSQLCLOSE">"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""?"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "?" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""?"";" EXECSQLOPEN"?"END-EXEC 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;" EXECSQL FETCH "?"INTO :tmpcnt END-EXEC 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 ""?"";" EXECSQLCLOSE"?"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""_"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "_" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""_"";" EXECSQLOPEN"_"END-EXEC 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;" EXECSQL FETCH "_"INTO :tmpcnt END-EXEC 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 ""_"";" EXECSQLCLOSE"_"END-EXEC MOVESQLCODETO SQL-COD
DISPLAY" " DISPLAY"DECLARE ""|"" CURSOR FOR" DISPLAY" SELECT COUNT(*) FROM HU.STAFF;" EXECSQL DECLARE "|" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""|"";" EXECSQLOPEN"|"END-EXEC 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;" EXECSQL FETCH "|"INTO :tmpcnt END-EXEC 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 ""|"";" EXECSQLCLOSE"|"END-EXEC 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;" EXECSQL DECLARE "|_?=;:/. -,+*)'&""%" CURSOR FOR SELECTCOUNT(*) FROM HU.STAFF END-EXEC DISPLAY"OPEN ""|_?=;:/. -,+*)'&""""%"";" EXECSQLOPEN"|_?=;:/. -,+*)'&""%"END-EXEC 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;" EXECSQL FETCH "|_?=;:/. -,+*)'&""%"INTO :tmpcnt END-EXEC 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 ""|_?=;:/. -,+*)'&""""%"";" EXECSQLCLOSE"|_?=;:/. -,+*)'&""%"END-EXEC MOVESQLCODETO SQL-COD
EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD
EXECSQLCOMMIT WORK END-EXEC 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;" EXECSQL DECLARE CHEDDAR CURSOR FOR SELECT GRADE AS PROVOLONE, EMPNAME AS EDAM FROM HU.STAFF ORDERBY PROVOLONE, EDAM DESC END-EXEC
DISPLAY"OPEN CHEDDAR;" EXECSQLOPEN CHEDDAR END-EXEC 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 EXECSQL FETCH CHEDDAR INTO :grd, :nam END-EXEC 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
EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD
DISPLAY"SELECT GRADE INTO :GRADE FROM HU.STAFF" DISPLAY"WHERE EMPNUM = 'E1';" EXECSQLSELECT GRADE INTO :GRADE FROM HU.STAFF WHERE EMPNUM = 'E1'END-EXEC MOVESQLCODETO SQL-COD
DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"GRADE should be 12; its value is ", GRADE
if (SQLCODENOT = 0 OR GRADE NOT = 12) then MOVE 0 TO flag END-IF
EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD
EXECSQLCOMMIT WORK END-EXEC 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';" EXECSQLSELECT 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'END-EXEC 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
EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD
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.