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: xts732.cob   Sprache: Cobol

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


      * Standard COBOL (file "DML046.SCO") calling SQL
      * procedures in file "DML046.MCO"  

      ****************************************************************
      *                                                              
      *                 COMMENT SECTION                              
      *                                                              
      * DATE 1988/11/28 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.
      *                                                              
      * DML046.SCO                                                    
      * WRITTEN BY: HU YANPING                                       
      * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE
      *                                                              
      *   THIS ROUTINE TESTS THE LIMIT ON THE COLUMNS SPECIFIED IN   
      * AN ORDER BY CLAUSE. THE LIMIT ON THE NUMBER OF COLUMNS IS NOT
      * LESS THAN SIX (6). THE LIMIT ON THE TOTAL LENGTH IS NOT LESS 
      * THAN ONE HUNDREND AND TWENTY (120).                          
      *                                                              
      * REFERENCES                                                   
      *       AMERICAN NATIONAL STANDARD database language - SQL     
      *                         X3.135-1989                          
      *                                                              
      *       FIPS PUB 127-1, Section 13.5                           
      *       Sizing for database constructs                         
      *                                                              
      ****************************************************************



      * EXEC SQL BEGIN DECLARE SECTION END-EXEC
       01  vcol3 PIC  X(4).
       01  vcol5 PIC  X(8).
       01  vcol6 PIC  X(10).
       01  i PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  ii PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  vcol4 PIC X(6).
       01  vcol7 PIC X(20).
       01  vcol8 PIC X(30).
       01  vcol9 PIC X(40).
      * EXEC SQL END DECLARE SECTION END-EXEC
       01  uid PIC  X(18).
       01  uidx PIC X(18).
       01  SQL-COD PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  SQLCODE PIC S9(9) COMP.
       01  errcnt PIC S9(4) DISPLAY SIGN LEADING SEPARATE.


      * date_time declaration *
       01  TO-DAY PIC 9(6).
       01  THE-TIME PIC 9(8).
    
       PROCEDURE DIVISION.
       P0.

           MOVE "HU" TO uid
           CALL "AUTHID" USING uid
           MOVE "not logged in, not" TO uidx
           CALL "AUTHCK" USING SQLCODE uidx
           MOVE SQLCODE TO SQL-COD
           if (uid NOT = uidx) then
            DISPLAY "ERROR: User " uid " expected."
            DISPLAY "User " uidx " connected."
            DISPLAY " "
            STOP RUN
           END-IF

           MOVE 0 TO errcnt
           DISPLAY
           "SQL Test Suite, V6.0, Module COBOL, dml046.sco"
           DISPLAY " "
           DISPLAY
           "59-byte ID"
           DISPLAY "TEd Version #"
           DISPLAY " "
      * date_time print *
           ACCEPT TO-DAY FROM DATE
           ACCEPT THE-TIME FROM TIME
           DISPLAY "Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME

      ******************** BEGIN TEST0220 *******************

           DISPLAY " FIPS sizing TEST0220 "
           DISPLAY " This routine tests the number of columns (6)
      -    " specified "
           DISPLAY " in a ORDER BY clause"
           DISPLAY " - - - - - - - - - - - - - - - - - - -"

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4444','666666','88888884','1010101010',
      *  '2020...20','3030...30','4040...40','5050...50',11,12)
      *  END-EXEC
           CALL "SUB1" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4444','666666','88888883','1010101010',
      *  '2020...20','3030...30','4040...40','5050...50',22,24)
      *  END-EXEC
           CALL "SUB2" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4444','666666','88888882','0101010101',
      *  '2020...20','3030...30','4040...40','5050...50',33,36)
      *  END-EXEC
           CALL "SUB3" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4444','666666','88888881','0101010101',
      *  '2020...20','3030...30','4040...40','5050...50',44,48)
      *  END-EXEC
           CALL "SUB4" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL SELECT COUNT(*)
      *  INTO  :i
      *  FROM  T12 END-EXEC
           CALL "SUB5" USING SQLCODE i
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL DECLARE X CURSOR FOR
      *  SELECT COL5,COL6,COL11,COL3,COL4,COL7,COL8
      *  FROM T12
      *  ORDER BY COL7,COL8,COL3,COL4,COL6,COL5 DESC END-EXEC

      * EXEC SQL OPEN X END-EXEC
           CALL "SUB6" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL FETCH X INTO :vcol5,:vcol6,:ii,
      *          :vcol3,:vcol4,:vcol7,:vcol8 END-EXEC
           CALL "SUB7" USING SQLCODE vcol5 vcol6 ii
                 vcol3 vcol4 vcol7 vcol8
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL ROLLBACK WORK END-EXEC
           CALL "SUB8" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           DISPLAY " i = ", i ", ii = ", ii
           DISPLAY " vcol5 = ", vcol5 ", vcol6 = ", vcol6 " "

           if (i = 4  AND  ii = 33  AND  vcol5   =   "88888882"then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0220','pass','MCO') END-EXEC
             CALL "SUB9" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml046.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0220','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB10" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF

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

           DISPLAY  " "

      * EXEC SQL COMMIT WORK END-EXEC
           CALL "SUB11" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0220 *******************


      ******************** BEGIN TEST0221 *******************

           DISPLAY " FIPS sizing TEST0221 "
           DISPLAY " This routine tests total length (120) of
      -    " columns specified"
           DISPLAY " in a ORDER BY clause"
           DISPLAY " - - - - - - - - - - - - - - - - - - -"

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4442','666666','88888888','1010101010',
      *  '20202020202020202020','303030303030303030303030303030',
      *  '4040404040404040404040404040404040404040',
      *  '5050...50',111,112) END-EXEC
           CALL "SUB12" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4443','666666','88888888','1010101010',
      *  '20202020202020202020','303030303030303030303030303030',
      *  '4040404040404040404040404040404040404040',
      *  '5050...50',222,224) END-EXEC
           CALL "SUB13" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4441','666666','88888888','1010101010',
      *  '20202020202020202020','303030303030303030303030303030',
      *  '4040404040404040404040404040404040404040',
      *  '5050...50',333,336) END-EXEC
           CALL "SUB14" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL INSERT INTO T12
      *  VALUES('1','22','4444','666666','88888888','1010101010',
      *  '20202020202020202020','303030303030303030303030303030',
      *  '4040404040404040404040404040404040404040',
      *  '5050...50',444,448) END-EXEC
           CALL "SUB15" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL SELECT COUNT(*)
      *  INTO  :i
      *  FROM  T12 END-EXEC
           CALL "SUB16" USING SQLCODE i
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL DECLARE Y CURSOR FOR
      *  SELECT COL3,COL11,COL9,COL8,COL7,COL5,COL4
      *  FROM T12
      *  ORDER BY COL9,COL8,COL7,COL5,COL4,COL3 END-EXEC

      * EXEC SQL OPEN Y END-EXEC
           CALL "SUB17" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL FETCH Y INTO :vcol3, :ii, 
      *      :vcol9, :vcol8 ,:vcol7, :vcol5, :vcol4 END-EXEC
           CALL "SUB18" USING SQLCODE vcol3 ii
                 vcol9 vcol8 vcol7 vcol5 vcol4
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL ROLLBACK WORK END-EXEC
           CALL "SUB19" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           DISPLAY " i = ", i ", ii = ", ii
           DISPLAY " vcol3 = ", vcol3 " "

           if (i = 4  AND  ii = 333  AND  vcol3   =   "4441"then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0221','pass','MCO') END-EXEC
             CALL "SUB20" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml046.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0221','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB21" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF

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

           DISPLAY  " "

      * EXEC SQL COMMIT WORK END-EXEC
           CALL "SUB22" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0221 *******************



      **** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
           STOP RUN.

      *    ****  Procedures for PERFORM statements

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ¤





Druckansicht
unsichere Verbindung
Druckansicht
sprechenden Kalenders

Eigene Datei ansehen




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