IDENTIFICATION DIVISION.
PROGRAM-ID. SDL032.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. xyz.
OBJECT-COMPUTER. xyz.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Standard COBOL (file "SDL032.SCO") calling SQL
* procedures in file "SDL032.MCO".
* STANDARD COBOL (file "SDL032.SCO")
****************************************************************
*
* COMMENT SECTION
*
* DATE 1992/06/15 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.
*
* SDL032.SCO
* WRITTEN BY: DAVID W. FLATER
*
* THIS ROUTINE TESTS THE SCHEMA DEFINITION LANGUAGE FOR SQL.
*
****************************************************************
* EXEC SQL BEGIN DECLARE SECTION END-EXEC
01 mpnm PIC X(3).
01 mpna PIC X(20).
01 grd PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 cty PIC X(15).
01 uid PIC X(18).
01 uidx PIC X(18).
01 tmpcnt PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
* EXEC SQL END DECLARE SECTION END-EXEC
01 SQLCODE PIC S9(9) COMP.
01 errcnt PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
*date_time declaration
01 TO-DAY PIC 9(6).
01 THE-TIME PIC 9(8).
01 ii PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 flag PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 SQL-COD PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
PROCEDURE DIVISION.
P0.
MOVE "FLATER" TO uid
CALL "AUTHID" USING uid
MOVE "not logged in, not" TO uidx
* EXEC SQL SELECT USER INTO :uidx FROM HU.ECCO;
CALL "SUB1" USING SQLCODE uidx
MOVE SQLCODE TO SQL-COD
if (uid NOT = uidx) then
DISPLAY "ERROR: User ", uid " expected. User ", uidx "
- " connected"
STOP RUN
END-IF
MOVE 0 TO errcnt
DISPLAY "SQL Test Suite, V6.0, Standard COBOL, sdl032.
- "pco"
DISPLAY
"59-byte ID"
DISPLAY "TEd Version #"
*date_time print
ACCEPT TO-DAY FROM DATE
ACCEPT THE-TIME FROM TIME
DISPLAY "Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
******************** BEGIN TEST0472 *******************
MOVE 1 TO flag
DISPLAY " TEST0472 "
DISPLAY " Priv.violation: indiv. SELECT & col. UPDATE"
DISPLAY "Reference ANSI SQL-1992 11.36 "
DISPLAY " - - - - - - - - - - - - - - - - - - -"
DISPLAY "SELECT EMPNU, EMPNAME, GRADE, CITY"
DISPLAY " INTO :mpnm, :mpna, :grd, :cty"
DISPLAY " FROM HU.STAFF3 WHERE EMPNUM = 'E1';"
MOVE "x" TO mpnm
MOVE "x" TO mpna
MOVE 0 TO grd
MOVE "x" TO cty
* EXEC SQL SELECT EMPNUM, EMPNAME, GRADE, CITY
* INTO :mpnm, :mpna, :grd, :cty
* FROM HU.STAFF3 WHERE EMPNUM = 'E1';
CALL "SUB2" USING SQLCODE mpnm mpna grd cty
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "mpnm should be 'E1'; its value is ", mpnm
DISPLAY "mpna should be 'Alice'; its value is ", mpna
DISPLAY "grd should be 12; its value is ", grd
DISPLAY "cty should be 'Deale'; its value is ", cty
if (ii NOT = 0 OR mpnm NOT = "E1") then
MOVE 0 TO flag
END-IF
if (mpna NOT = "Alice" OR grd NOT = 12) then
MOVE 0 TO flag
END-IF
if (cty NOT = "Deale") then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.STAFF3 SET EMPNUM = 'E0' WHERE EMPNUM =
- " 'E1';"
* EXEC SQL UPDATE HU.STAFF3
* SET EMPNUM = 'E0'
* WHERE EMPNUM = 'E1';
CALL "SUB3" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.STAFF3 SET EMPNAME = 'Larry'"
DISPLAY " WHERE EMPNUM = 'E0';"
* EXEC SQL UPDATE HU.STAFF3
* SET EMPNAME = 'Larry'
* WHERE EMPNUM = 'E0';
CALL "SUB4" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.STAFF3 SET GRADE = 15;"
* EXEC SQL UPDATE HU.STAFF3
* SET GRADE = 15;
CALL "SUB5" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.STAFF3 SET CITY = 'Greenmount';"
* EXEC SQL UPDATE HU.STAFF3
* SET CITY = 'Greenmount';
CALL "SUB6" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "SELECT COUNT(*) FROM HU.STAFF3"
DISPLAY "WHERE CITY = 'Greenmount' OR"
DISPLAY "GRADE = 15;"
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt
* FROM HU.STAFF3 WHERE CITY = 'Greenmount'
* OR GRADE = 15;
CALL "SUB7" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "INSERT INTO HU.STAFF3 VALUES
- " ('E6','Mickey',12,'Nice');"
DISPLAY "SELECT COUNT(*) FROM HU.STAFF3;"
* EXEC SQL INSERT INTO HU.STAFF3
* VALUES ('E6','Mickey',12,'Nice');
CALL "SUB8" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.STAFF3
* ;
CALL "SUB9" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
DISPLAY "SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD
DISPLAY "COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then
MOVE 0 TO flag
END-IF
DISPLAY "DELETE FROM HU.STAFF3;"
DISPLAY "SELECT COUNT(*) FROM HU.STAFF3;"
* EXEC SQL DELETE FROM HU.STAFF3;
CALL "SUB10" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.STAFF3
* ;
CALL "SUB11" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
DISPLAY "SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD
DISPLAY "COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then
MOVE 0 TO flag
END-IF
* EXEC SQL ROLLBACK WORK;
CALL "SUB12" USING SQLCODE
MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0472','pass','MCO');
CALL "SUB13" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " sdl032.sco *** fail *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0472','fail','MCO');
CALL "SUB14" USING SQLCODE
MOVE SQLCODE TO SQL-COD
COMPUTE errcnt = errcnt + 1
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB15" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0472 ********************
******************** BEGIN TEST0484 *******************
MOVE 1 TO flag
DISPLAY " TEST0484 "
DISPLAY " Priv.violation: SELECT & col. UPDATE on view"
DISPLAY "Reference ANSI SQL-1992 11.36 "
DISPLAY " - - - - - - - - - - - - - - - - - - -"
DISPLAY "SELECT EMPNU, EMPNAME, GRADE, CITY"
DISPLAY " INTO :mpnm, :mpna, :grd, :cty"
DISPLAY " FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';"
MOVE "x" TO mpnm
MOVE "x" TO mpna
MOVE 0 TO grd
MOVE "x" TO cty
* EXEC SQL SELECT EMPNUM, EMPNAME, GRADE, CITY
* INTO :mpnm, :mpna, :grd, :cty
* FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';
CALL "SUB16" USING SQLCODE mpnm mpna grd cty
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "mpnm should be 'E1'; its value is ", mpnm
DISPLAY "mpna should be 'Alice'; its value is ", mpna
DISPLAY "grd should be 12; its value is ", grd
DISPLAY "cty should be 'Deale'; its value is ", cty
if (ii NOT = 0 OR mpnm NOT = "E1") then
MOVE 0 TO flag
END-IF
if (mpna NOT = "Alice" OR grd NOT = 12) then
MOVE 0 TO flag
END-IF
if (cty NOT = "Deale") then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET EMPNUM = 'E0' WHERE EMPNUM =
- " 'E1';"
* EXEC SQL UPDATE HU.VSTAFF3
* SET EMPNUM = 'E0'
* WHERE EMPNUM = 'E1';
CALL "SUB17" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET EMPNAME = 'Larry'"
DISPLAY " WHERE EMPNUM = 'E0';"
* EXEC SQL UPDATE HU.VSTAFF3
* SET EMPNAME = 'Larry'
* WHERE EMPNUM = 'E0';
CALL "SUB18" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET GRADE = 15;"
* EXEC SQL UPDATE HU.VSTAFF3
* SET GRADE = 15;
CALL "SUB19" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET CITY = 'Greenmount';"
* EXEC SQL UPDATE HU.VSTAFF3
* SET CITY = 'Greenmount';
CALL "SUB20" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "SELECT COUNT(*) FROM HU.VSTAFF3"
DISPLAY "WHERE CITY = 'Greenmount' OR"
DISPLAY "GRADE = 15;"
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt
* FROM HU.VSTAFF3 WHERE CITY = 'Greenmount'
* OR GRADE = 15;
CALL "SUB21" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "INSERT INTO HU.VSTAFF3 VALUES
- " ('E6','Mickey',12,'Nice');"
DISPLAY "SELECT COUNT(*) FROM HU.VSTAFF3;"
* EXEC SQL INSERT INTO HU.VSTAFF3
* VALUES ('E6','Mickey',12,'Nice');
CALL "SUB22" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3
* ;
CALL "SUB23" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
DISPLAY "SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD
DISPLAY "COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then
MOVE 0 TO flag
END-IF
DISPLAY "DELETE FROM HU.VSTAFF3;"
DISPLAY "SELECT COUNT(*) FROM HU.VSTAFF3;"
* EXEC SQL DELETE FROM HU.VSTAFF3;
CALL "SUB24" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3
* ;
CALL "SUB25" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
DISPLAY "SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD
DISPLAY "COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then
MOVE 0 TO flag
END-IF
* EXEC SQL ROLLBACK WORK;
CALL "SUB26" USING SQLCODE
MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0484','pass','MCO');
CALL "SUB27" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " sdl032.sco *** fail *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0484','fail','MCO');
CALL "SUB28" USING SQLCODE
MOVE SQLCODE TO SQL-COD
COMPUTE errcnt = errcnt + 1
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB29" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0484 ********************
******************** BEGIN TEST0485 *******************
MOVE 1 TO flag
DISPLAY " TEST0485 "
DISPLAY " Priv.violation: SELECT & col. UPDATE cursor"
DISPLAY "Reference ANSI SQL-1992 11.36 "
DISPLAY " 13.1
- " cursor>"
DISPLAY " 13.2
- " statement>"
DISPLAY " - - - - - - - - - - - - - - - - - - -"
DISPLAY "DECLARE BRAD CURSOR FOR"
DISPLAY "SELECT EMPNUM, EMPNAME, GRADE, CITY"
DISPLAY "FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';"
* EXEC SQL DECLARE BRAD CURSOR FOR
* SELECT EMPNUM, EMPNAME, GRADE, CITY
* FROM HU.VSTAFF3 WHERE EMPNUM = 'E1' END-EXEC
DISPLAY "OPEN BRAD;"
* EXEC SQL OPEN BRAD;
CALL "SUB30" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
MOVE "x" TO mpnm
MOVE "x" TO mpna
MOVE 0 TO grd
MOVE "x" TO cty
DISPLAY "FETCH BRAD INTO :mpnm, :mpna, :grd, :cty;"
* EXEC SQL FETCH BRAD INTO :mpnm, :mpna, :grd, :cty;
CALL "SUB31" USING SQLCODE mpnm mpna grd cty
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "mpnm should be 'E1'; its value is ", mpnm
DISPLAY "mpna should be 'Alice'; its value is ", mpna
DISPLAY "grd should be 12; its value is ", grd
DISPLAY "cty should be 'Deale'; its value is ", cty
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
if (mpnm NOT = "E1") then
MOVE 0 TO flag
END-IF
if (mpna NOT = "Alice" OR grd NOT = 12) then
MOVE 0 TO flag
END-IF
if (cty NOT = "Deale") then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE BRAD;"
* EXEC SQL CLOSE BRAD;
CALL "SUB32" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY "DECLARE MAGENTA CURSOR FOR"
DISPLAY "SELECT EMPNUM, EMPNAME FROM HU.VSTAFF3;"
* EXEC SQL DECLARE MAGENTA CURSOR FOR
* SELECT EMPNUM, EMPNAME
* FROM HU.VSTAFF3 END-EXEC
*Magenta Declaration
*Do not delete these comments--TED uses them
DISPLAY "OPEN MAGENTA;"
* EXEC SQL OPEN MAGENTA;
CALL "SUB33" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "FETCH MAGENTA INTO :mpnm, :mpna;"
* EXEC SQL FETCH MAGENTA INTO :mpnm, :mpna;
CALL "SUB34" USING SQLCODE mpnm mpna
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET EMPNUM = 'E0'"
DISPLAY "WHERE CURRENT OF MAGENTA;"
* EXEC SQL UPDATE HU.VSTAFF3
* SET EMPNUM = 'E0' WHERE CURRENT OF MAGENTA;
CALL "SUB35" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET EMPNAME = 'Janet'"
DISPLAY "WHERE CURRENT OF MAGENTA;"
* EXEC SQL UPDATE HU.VSTAFF3
* SET EMPNAME = 'Janet'
* WHERE CURRENT OF MAGENTA;
CALL "SUB36" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
*Do Not Delete This 001
DISPLAY "UPDATE HU.VSTAFF3 SET GRADE = 15"
DISPLAY "WHERE CURRENT OF MAGENTA;"
* EXEC SQL UPDATE HU.VSTAFF3
* SET GRADE = 15
* WHERE CURRENT OF MAGENTA;
CALL "SUB37" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "UPDATE HU.VSTAFF3 SET CITY = 'Denton'"
DISPLAY "WHERE CURRENT OF MAGENTA;"
* EXEC SQL UPDATE HU.VSTAFF3
* SET CITY = 'Denton'
* WHERE CURRENT OF MAGENTA;
CALL "SUB38" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
DISPLAY "SELECT COUNT(*) FROM HU.VSTAFF3"
DISPLAY "WHERE CITY = 'Denton' OR"
DISPLAY "GRADE = 15;"
COMPUTE tmpcnt = -1
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt
* FROM HU.VSTAFF3 WHERE CITY = 'Denton'
* OR GRADE = 15;
CALL "SUB39" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "DELETE FROM HU.VSTAFF3 WHERE CURRENT OF MAGENTA;"
* EXEC SQL DELETE FROM HU.VSTAFF3
* WHERE CURRENT OF MAGENTA;
CALL "SUB40" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then
MOVE 0 TO flag
END-IF
*Do Not Delete This 002
DISPLAY "CLOSE MAGENTA;"
* EXEC SQL CLOSE MAGENTA;
CALL "SUB41" USING SQLCODE
MOVE SQLCODE TO SQL-COD
COMPUTE tmpcnt = -1
DISPLAY "SELECT COUNT(*) FROM HU.VSTAFF3;"
* EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3
* ;
CALL "SUB42" USING SQLCODE tmpcnt
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO ii
DISPLAY "SQLCODE should be 0; its value is ", ii
DISPLAY "COUNT should be 5; its value is ", tmpcnt
if (ii NOT = 0) then
MOVE 0 TO flag
END-IF
if (tmpcnt NOT = 5) then
MOVE 0 TO flag
END-IF
* EXEC SQL ROLLBACK WORK;
CALL "SUB43" USING SQLCODE
MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0485','pass','MCO');
CALL "SUB44" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " sdl032.sco *** fail *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0485','fail','MCO');
CALL "SUB45" USING SQLCODE
MOVE SQLCODE TO SQL-COD
COMPUTE errcnt = errcnt + 1
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB46" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0485 ********************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOP RUN.
* **** Procedures for PERFORM statements
¤ Dauer der Verarbeitung: 0.46 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
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.
|