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: cdr015.mco   Sprache: Unknown

       IDENTIFICATION DIVISION.
       PROGRAM-ID.  DML085.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.  xyz.
       OBJECT-COMPUTER.  xyz.
       DATA DIVISION.
       WORKING-STORAGE SECTION.

      * 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                    
      *                                                              
      ****************************************************************



      * EXEC SQL BEGIN DECLARE SECTION END-EXEC
       01  uid PIC  X(18).
       01  uidx PIC  X(18).
       01  nam PIC  X(20).
       01  tc1 PIC  X(19).
       01  tc2 PIC  X(19).
       01  ti PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  grd PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  tmpcnt PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  GRADE 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  flag PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  oldgrd PIC S9(9) DISPLAY SIGN LEADING SEPARATE.

       01  SQL-COD PIC S9(9) DISPLAY SIGN LEADING SEPARATE.

       PROCEDURE DIVISION.
       P0.

             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" 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
             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 FROM DATE
           ACCEPT THE-TIME FROM TIME
           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 and "
             DISPLAY " Format of and "
             DISPLAY " SR3,SR4,SR10,SR11,SR12,SR13,SR14 and "
             DISPLAY " Leveling Rules 2a and 2b "
             DISPLAY " section 5.1 "
             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" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD

             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 2; its value is ", tmpcnt

             if (SQLCODE  NOT =  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".""sullivan.select"""
             DISPLAY " FROM ""FLATER"".""SULLIVAN.SELECT"" ""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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "FETCH ""A < a"" INTO :grd;"
      *  EXEC SQL FETCH "A < a" INTO :grd;
             CALL "SUB4" USING SQLCODE grd
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF

             DISPLAY "CLOSE ""A < a"";"
      *  EXEC SQL CLOSE "A < a";
             CALL "SUB5" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""0"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "0" INTO :tmpcnt;
             CALL "SUB7" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""0"";"
      *  EXEC SQL CLOSE "0";
             CALL "SUB8" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH """""""" INTO :tmpcnt;"
      *  EXEC SQL FETCH """" INTO :tmpcnt;
             CALL "SUB10" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE """""""";"
      *  EXEC SQL CLOSE """";
             CALL "SUB11" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""%"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "%" INTO :tmpcnt;
             CALL "SUB13" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""%"";"
      *  EXEC SQL CLOSE "%";
             CALL "SUB14" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""&"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "&" INTO :tmpcnt;
             CALL "SUB16" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""&"";"
      *  EXEC SQL CLOSE "&";
             CALL "SUB17" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""'"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "'" INTO :tmpcnt;
             CALL "SUB19" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""'"";"
      *  EXEC SQL CLOSE "'";
             CALL "SUB20" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""("" INTO :tmpcnt;"
      *  EXEC SQL FETCH "(" INTO :tmpcnt;
             CALL "SUB22" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""("";"
      *  EXEC SQL CLOSE "(";
             CALL "SUB23" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH "")"" INTO :tmpcnt;"
      *  EXEC SQL FETCH ")" INTO :tmpcnt;
             CALL "SUB25" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE "")"";"
      *  EXEC SQL CLOSE ")";
             CALL "SUB26" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""*"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "*" INTO :tmpcnt;
             CALL "SUB28" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""*"";"
      *  EXEC SQL CLOSE "*";
             CALL "SUB29" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""+"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "+" INTO :tmpcnt;
             CALL "SUB31" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""+"";"
      *  EXEC SQL CLOSE "+";
             CALL "SUB32" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH "","" INTO :tmpcnt;"
      *  EXEC SQL FETCH "," INTO :tmpcnt;
             CALL "SUB34" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE "","";"
      *  EXEC SQL CLOSE ",";
             CALL "SUB35" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""-"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "-" INTO :tmpcnt;
             CALL "SUB37" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""-"";"
      *  EXEC SQL CLOSE "-";
             CALL "SUB38" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""."" INTO :tmpcnt;"
      *  EXEC SQL FETCH "." INTO :tmpcnt;
             CALL "SUB40" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""."";"
      *  EXEC SQL CLOSE ".";
             CALL "SUB41" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""/"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "/" INTO :tmpcnt;
             CALL "SUB43" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""/"";"
      *  EXEC SQL CLOSE "/";
             CALL "SUB44" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH "":"" INTO :tmpcnt;"
      *  EXEC SQL FETCH ":" INTO :tmpcnt;
             CALL "SUB46" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE "":"";"
      *  EXEC SQL CLOSE ":";
             CALL "SUB47" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH "";"" INTO :tmpcnt;"
      *  EXEC SQL FETCH ";" INTO :tmpcnt;
             CALL "SUB49" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE "";"";"
      *  EXEC SQL CLOSE ";";
             CALL "SUB50" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""<"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "<" INTO :tmpcnt;
             CALL "SUB52" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""<"";"
      *  EXEC SQL CLOSE "<";
             CALL "SUB53" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""="" INTO :tmpcnt;"
      *  EXEC SQL FETCH "=" INTO :tmpcnt;
             CALL "SUB55" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""="";"
      *  EXEC SQL CLOSE "=";
             CALL "SUB56" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH "">"" INTO :tmpcnt;"
      *  EXEC SQL FETCH ">" INTO :tmpcnt;
             CALL "SUB58" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE "">"";"
      *  EXEC SQL CLOSE ">";
             CALL "SUB59" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""?"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "?" INTO :tmpcnt;
             CALL "SUB61" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""?"";"
      *  EXEC SQL CLOSE "?";
             CALL "SUB62" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""_"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "_" INTO :tmpcnt;
             CALL "SUB64" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""_"";"
      *  EXEC SQL CLOSE "_";
             CALL "SUB65" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""|"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "|" INTO :tmpcnt;
             CALL "SUB67" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""|"";"
      *  EXEC SQL CLOSE "|";
             CALL "SUB68" USING SQLCODE
             MOVE SQLCODE TO 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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             if (SQLCODE  NOT =  0) then
               MOVE 0 TO flag
             END-IF
             COMPUTE tmpcnt = -1
             DISPLAY "FETCH ""|_?=;:/. -,+*)'&""""%"" INTO :tmpcnt;"
      *  EXEC SQL FETCH "|_?=;:/. -,+*)'&""%" INTO :tmpcnt;
             CALL "SUB70" USING SQLCODE tmpcnt
             MOVE SQLCODE TO SQL-COD
             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "tmpcnt should be 5; its value is ", tmpcnt
             if (SQLCODE  NOT =  0  OR  tmpcnt  NOT =  5) then
               MOVE 0 TO flag
             END-IF
             DISPLAY "CLOSE ""|_?=;:/. -,+*)'&""""%"";"
      *  EXEC SQL CLOSE "|_?=;:/. -,+*)'&""%";
             CALL "SUB71" USING SQLCODE
             MOVE SQLCODE TO SQL-COD

      *  EXEC SQL ROLLBACK WORK;
             CALL "SUB72" USING SQLCODE
             MOVE SQLCODE TO SQL-COD

             if ( flag  =  1 ) then
               DISPLAY " *** pass *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0508','pass','MCO');
               CALL "SUB73" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY " dml085.sco *** fail *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0508','fail','MCO');
               CALL "SUB74" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

      *  EXEC SQL COMMIT WORK;
             CALL "SUB75" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0508 ********************
      ******************** BEGIN TEST0509 *******************
             MOVE 1 TO flag

             DISPLAY " TEST0509 "
             DISPLAY " Renaming columns"
             DISPLAY "Reference ANSI SQL-1992,"
             DISPLAY " section 7.9 , SR 9a "
             DISPLAY " section 13.1 "
             DISPLAY " - - - - - - - - - - - - - - - - - - -"

             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" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
             if (SQLCODE  <  0) then
               GO TO 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" USING SQLCODE grd nam
             MOVE SQLCODE TO SQL-COD
             if (SQLCODE  NOT =  0) then
               GO TO P100
             END-IF
             DISPLAY nam " ", grd
             if (grd  <  oldgrd) then
               GO TO P102
             END-IF
             MOVE grd TO oldgrd
             GO TO 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 ROLLBACK WORK;
             CALL "SUB78" USING SQLCODE
             MOVE SQLCODE TO SQL-COD

             if ( flag  =  1 ) then
               DISPLAY " *** pass *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0509','pass','MCO');
               CALL "SUB79" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY " dml085.sco *** fail *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0509','fail','MCO');
               CALL "SUB80" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

      *  EXEC SQL COMMIT WORK;
             CALL "SUB81" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0509 ********************

      ******************** BEGIN TEST0510 *******************
             MOVE 1 TO flag

             DISPLAY " TEST0510 "
             DISPLAY " = "
             DISPLAY " Reference Defect Report ISO/IEC JTC1/SC21/WG3
      -    " 9075/6,"
             DISPLAY " #2, Clause 7.3 (in SQL 89) , "
             DISPLAY " Section 12.3 (in SQL 92) To allow Parameter Names
      -    " "
             DISPLAY " equal to Column Names except for required "
             DISPLAY " colon prefix! "
             DISPLAY " - - - - - - - - - - - - - - - - - - -"

             DISPLAY "SELECT GRADE INTO :GRADE FROM HU.STAFF"
             DISPLAY "WHERE EMPNUM = 'E1';"
      *  EXEC SQL SELECT GRADE INTO :GRADE FROM HU.STAFF
      *    WHERE EMPNUM = 'E1';
             CALL "SUB82" USING SQLCODE GRADE
             MOVE SQLCODE TO SQL-COD

             DISPLAY "SQLCODE should be 0; its value is ", SQL-COD
             DISPLAY "GRADE should be 12; its value is ", GRADE

             if (SQLCODE  NOT =  0  OR  GRADE  NOT =  12) then
               MOVE 0 TO flag
             END-IF

      *  EXEC SQL ROLLBACK WORK;
             CALL "SUB83" USING SQLCODE
             MOVE SQLCODE TO SQL-COD

             if ( flag  =  1 ) then
               DISPLAY " *** pass *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0510','pass','MCO');
               CALL "SUB84" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
             else
               DISPLAY " dml085.sco *** fail *** "
      *    EXEC SQL INSERT INTO HU.TESTREPORT
      *      VALUES('0510','fail','MCO');
               CALL "SUB85" USING SQLCODE
               MOVE SQLCODE TO SQL-COD
               COMPUTE errcnt = errcnt + 1
             END-IF

             DISPLAY "==============================================="

      *  EXEC SQL COMMIT WORK;
             CALL "SUB86" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
      ******************** END TEST0510 ********************
      ******************** BEGIN TEST0554 *******************
             MOVE 1 TO flag

             DISPLAY " TEST0554 "
             DISPLAY "More column renaming -