products/sources/formale sprachen/Cobol/Test-Suite/SQL M image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: dml082.cob   Sprache: Cobol

       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)  ¤





Druckansicht
unsichere Verbindung
Druckansicht
sprechenden Kalenders

in der Quellcodebibliothek suchen




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.


Bot Zugriff