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

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


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

      ****************************************************************
      *                                                              
      *                 COMMENT SECTION                              
      *                                                              
      * DATE 1989/07/21 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.
      *                                                              
      * DML060.SCO                                                    
      * WRITTEN BY: SUN DAJUN                                        
      * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE
      *                                                              
      *   THIS ROUTINE TESTS THE SET FUNCTION SPECIFICATION IN       
      * COMMON ELEMENTS OF THE SQL LANGUAGE.                         
      *                                                              
      * REFERENCES                                                   
      *       AMERICAN NATIONAL STANDARD database language - SQL     
      *                         X3.135-1989                          
      *                                                              
      *                SECTION 5.21 <where clause>                   
      *                SECTION 5.9  <value expression>               
      *                                                              
      ****************************************************************



      * EXEC SQL BEGIN DECLARE SECTION END-EXEC
       01  int1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  int2 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  int3 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  EMPNO1 PIC  X(3).
       01  PNO1 PIC  X(3).
       01  PNO2 PIC  X(3).
       01  HOURS1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
       01  ii PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
      * EXEC SQL END DECLARE SECTION END-EXEC
       01  SQLCODE PIC S9(9) COMP.
       01  errcnt PIC S9(4) DISPLAY SIGN LEADING SEPARATE.
       01  uid PIC  X(18).
       01  uidx PIC X(18).
       01  i 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.

      * 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, dml060.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 TEST0261 *******************

           DISPLAY " Computation in Where Clause "
           DISPLAY "Reference X3.135-1989 section 5.9 General Rules "
           DISPLAY " ------------------------------------------ "
           DISPLAY " TEST0261 "
           DISPLAY " Reference 5.9 General Rules )"
           DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
           DISPLAY  " "
           DISPLAY " DECLARE SUN CURSOR "
           DISPLAY " FOR SELECT COL1, COL2"
           DISPLAY " FROM VTABLE"
           DISPLAY " WHERE (:int3 * (COL3 - COL2)) BETWEEN 5
      -    " AND 200"
           DISPLAY " ORDER BY COL1;"
           DISPLAY  " "
           MOVE 2 TO int3
      * EXEC SQL DECLARE SUN CURSOR 
      *  FOR   SELECT COL1, COL2
      *  FROM VTABLE
      *  WHERE (:int3 * (COL3 - COL2)) BETWEEN 5 AND 200
      *  ORDER BY COL1 END-EXEC
      * EXEC SQL OPEN SUN;
           CALL "SUB1" USING SQLCODE int3
           MOVE SQLCODE TO SQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY " 10, 20"
           DISPLAY " 100, 200"
           DISPLAY " Your answer is :"

           MOVE 0 TO flag

      * EXEC SQL FETCH SUN INTO :int1,:int2;
           CALL "SUB2" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  10  AND  int2  =  20) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF

      * EXEC SQL FETCH SUN INTO :int1,:int2;
           CALL "SUB3" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  100  AND  int2  =  200) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF


      * EXEC SQL CLOSE SUN;
           CALL "SUB4" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           if (flag = 0) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0261','pass','MCO') END-EXEC
             CALL "SUB5" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0261','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB6" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==============================================="

      * EXEC SQL COMMIT WORK;
           CALL "SUB7" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0261 *******************





      ******************** BEGIN TEST0262 *******************

           DISPLAY " Computation in Where Clause "
           DISPLAY "Reference X3.135-1989 section 5.9 General Rules "
           DISPLAY " ------------------------------------------ "
           DISPLAY " TEST0262 "
           DISPLAY " Reference 5.9 General Rules )"
           DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
           DISPLAY  " "
           DISPLAY  " "
           DISPLAY " UPDATE VTABLE"
           DISPLAY " SET COL1 = 1"
           DISPLAY " WHERE COL1 = 0;"
           DISPLAY  " "
           DISPLAY " DECLARE SUN1 CURSOR "
           DISPLAY " FOR SELECT COL1, COL2"
           DISPLAY " FROM VTABLE"
           DISPLAY " WHERE (COL3 * COL2 / COL1) > ALL"
           DISPLAY " (SELECT HOURS FROM WORKS)"
           DISPLAY " OR -(COL3 * COL2 /COL1) >
      -    " ANY"
           DISPLAY " (SELECT HOURS FROM WORKS)"
           DISPLAY " ORDER BY COL1;"
           DISPLAY  " "
      * EXEC SQL UPDATE VTABLE
      *  SET COL1 = 1
      *  WHERE COL1 = 0 END-EXEC
           CALL "SUB8" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL DECLARE SUN1 CURSOR 
      *  FOR   SELECT COL1, COL2
      *  FROM VTABLE
      *  WHERE (COL3 * COL2 / COL1) > ALL
      *  (SELECT HOURS FROM WORKS)
      *  OR -(COL3 * COL2 /COL1) > ANY
      *  (SELECT HOURS FROM WORKS)
      *  ORDER BY COL1 END-EXEC
      * EXEC SQL OPEN SUN1;
           CALL "SUB9" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY " 100, 200"
           DISPLAY " 1000, -2000"
           DISPLAY " Your answer is :"

           MOVE 0 TO flag

      * EXEC SQL FETCH SUN1 INTO :int1,:int2;
           CALL "SUB10" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  100  AND  int2  =  200) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF

      * EXEC SQL FETCH SUN1 INTO :int1,:int2;
           CALL "SUB11" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  1000  AND  int2  =  -2000) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF


      * EXEC SQL CLOSE SUN1;
           CALL "SUB12" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL ROLLBACK WORK;
           CALL "SUB13" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           if (flag = 0) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0262','pass','MCO') END-EXEC
             CALL "SUB14" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0262','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB15" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==============================================="

      * EXEC SQL COMMIT WORK;
           CALL "SUB16" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0262 *******************






      ******************** BEGIN TEST0263 *******************

           DISPLAY " Computation in ORDER BY "
           DISPLAY "Reference X3.135-1989 section 5.9 General Rules "
           DISPLAY " ------------------------------------------ "
           DISPLAY " TEST0263 "
           DISPLAY " Reference 5.9 General Rules )"
           DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
           DISPLAY  " "
           DISPLAY " FOR SELECT COL1, COL3 * COL2 /COL1 -
      -    " COL2 + 10"
           DISPLAY " FROM VTABLE"
           DISPLAY " WHERE COL1 > 0"
           DISPLAY " ORDER BY 2;"
           DISPLAY  " "
      * EXEC SQL DECLARE SUN2 CURSOR 
      *  FOR   SELECT COL1, (COL3 * COL2 /COL1 - COL2 + 10)
      *  FROM VTABLE
      *  WHERE COL1 > 0
      *  ORDER BY 2 END-EXEC
      * EXEC SQL OPEN SUN2;
           CALL "SUB17" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY " 1000, -3990"
           DISPLAY " 10, 50"
           DISPLAY " 100, 410"

           DISPLAY " Your answer is :"
           MOVE 0 TO flag


      * EXEC SQL FETCH SUN2 INTO :int1,:int2;
           CALL "SUB18" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  1000  AND  int2  =  -3990) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF

      * EXEC SQL FETCH SUN2 INTO :int1,:int2;
           CALL "SUB19" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  10  AND  int2  =  50) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF

      * EXEC SQL FETCH SUN2 INTO :int1,:int2;
           CALL "SUB20" USING SQLCODE int1 int2
           MOVE SQLCODE TO SQL-COD
           DISPLAY " ", int1 ", ", int2
           if (int1  =  100  AND  int2  =  410) then
             MOVE flag TO flag
           else
             MOVE 1 TO flag
           END-IF

      * EXEC SQL CLOSE SUN2;
           CALL "SUB21" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           if (flag = 0) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0263','pass','MCO') END-EXEC
             CALL "SUB22" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0263','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB23" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==============================================="

      * EXEC SQL COMMIT WORK;
           CALL "SUB24" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0263 *******************




      ******************** BEGIN TEST0265 *******************

           DISPLAY " TEST0265 "
           DISPLAY " update: positioned -- view with check option"
           DISPLAY "reference X3.135-1989 section 6.6 General Rules 2)"
           DISPLAY " - - - - - - - - - - - - - - - - - - -"

           MOVE 0 TO i

      *EXEC SQL CREATE VIEW SUBSP (EMPNUM,PNUM,HOURS)     
      *    AS SELECT EMPNUM,PNUM,HOURS                    
      *       FROM   WORKS                                
      *       WHERE  EMPNUM='E3'                          
      *    WITH CHECK OPTION;                             

           DISPLAY  " "
           DISPLAY " INSERT INTO WORKS"
           DISPLAY " VALUES ('E3','P4',50);"
           DISPLAY  " "
           DISPLAY " DECLARE DIPER CURSOR"
           DISPLAY " FOR SELECT EMPNUM,PNUM,HOURS"
           DISPLAY " FROM SUBSP;"
           DISPLAY  " "
           DISPLAY " UPDATE SUBSP"
           DISPLAY " SET EMPNUM='E9'"
           DISPLAY " WHERE CURRENT OF DIPER;"
           DISPLAY  " "
      * EXEC SQL INSERT INTO WORKS
      *  VALUES ('E3','P4',50) END-EXEC
           CALL "SUB25" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL DECLARE DIPER CURSOR
      *  FOR SELECT EMPNUM,PNUM,HOURS
      *  FROM   SUBSP END-EXEC
      *   FOR UPDATE OF EMPNUM;     

      * EXEC SQL OPEN DIPER;
           CALL "SUB26" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL FETCH DIPER INTO :EMPNO1,:PNO1,:HOURS1;
           CALL "SUB27" USING SQLCODE EMPNO1 PNO1 HOURS1
           MOVE SQLCODE TO SQL-COD


           DISPLAY " EMPNO1=", EMPNO1 ", PNO1=", PNO1 " and HOURS1=",
             HOURS1 " "

      * EXEC SQL UPDATE SUBSP
      *  SET EMPNUM='E9'
      *  WHERE CURRENT OF DIPER END-EXEC
           CALL "SUB28" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           MOVE SQLCODE TO i
      * EXEC SQL CLOSE DIPER;
           CALL "SUB29" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL ROLLBACK WORK;
           CALL "SUB30" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           DISPLAY "The answer should be: i < 0 "
           DISPLAY " Your answer is :"
           DISPLAY " i = ", i " "
           if (i  <  0) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0265','pass','MCO') END-EXEC
             CALL "SUB31" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0265','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB32" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==================================================="

           DISPLAY  " "

      * EXEC SQL COMMIT WORK;
           CALL "SUB33" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0265 *******************





      ******************** BEGIN TEST0266 *******************

           DISPLAY " TEST0266 "
           DISPLAY " update: positioned -- UNIQUE violation under view
      -    " "
           DISPLAY "reference X3.135-1989 section 8.11 General Rules 5)"
           DISPLAY " - - - - - - - - - - - - - - - - - - -"

           MOVE 0 TO i

      *EXEC SQL CREATE VIEW SUBSP (EMPNUM,PNUM,HOURS)     
      *    AS SELECT EMPNUM,PNUM,HOURS                    
      *       FROM   WORKS                                
      *       WHERE  EMPNUM='E3'                          
      *    WITH CHECK OPTION;                             

           DISPLAY  " "
           DISPLAY " INSERT INTO WORKS"
           DISPLAY " VALUES ('E3','P4',50);"
           DISPLAY  " "
           DISPLAY " DECLARE DOVE CURSOR"
           DISPLAY " FOR SELECT EMPNUM,PNUM,HOURS"
           DISPLAY " FROM SUBSP;"
           DISPLAY  " "
           DISPLAY " UPDATE SUBSP"
           DISPLAY " SET PNUM='P6'"
           DISPLAY " WHERE CURRENT OF DOVE;"
           DISPLAY  " "

      * EXEC SQL INSERT INTO WORKS
      *  VALUES ('E3','P4',50) END-EXEC
           CALL "SUB34" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL DECLARE DOVE CURSOR
      *  FOR SELECT EMPNUM,PNUM,HOURS
      *  FROM   SUBSP END-EXEC
      *   FOR UPDATE OF PNUM;     

      * EXEC SQL OPEN DOVE;
           CALL "SUB35" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL FETCH DOVE INTO :EMPNO1,:PNO1,:HOURS1;
           CALL "SUB36" USING SQLCODE EMPNO1 PNO1 HOURS1
           MOVE SQLCODE TO SQL-COD


           DISPLAY " EMPNO1=", EMPNO1 ", PNO1=", PNO1 " and HOURS1=",
             HOURS1 " "

      * EXEC SQL UPDATE SUBSP
      *  SET PNUM='P6'
      *  WHERE CURRENT OF DOVE END-EXEC
           CALL "SUB37" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL FETCH DOVE INTO :EMPNO1,:PNO1,:HOURS1;
           CALL "SUB38" USING SQLCODE EMPNO1 PNO1 HOURS1
           MOVE SQLCODE TO SQL-COD


           DISPLAY " EMPNO1=", EMPNO1 ", PNO1=", PNO1 " and HOURS1=",
             HOURS1 " "

      * EXEC SQL UPDATE SUBSP
      *  SET PNUM='P6'
      *  WHERE CURRENT OF DOVE END-EXEC
           CALL "SUB39" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           MOVE SQLCODE TO i
      * EXEC SQL CLOSE DOVE;
           CALL "SUB40" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL ROLLBACK WORK;
           CALL "SUB41" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           DISPLAY "The answer should be: i < 0" " "
           DISPLAY " Your answer is :"
           DISPLAY " i = ", i " "
           if (i  <  0) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0266','pass','MCO') END-EXEC
             CALL "SUB42" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0266','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB43" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==================================================="

           DISPLAY  " "

      * EXEC SQL COMMIT WORK;
           CALL "SUB44" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0266 *******************




      ******************** BEGIN TEST0267 *******************

           DISPLAY " Update compound key, interim uniqueness conflict"
           DISPLAY "Reference X3.135-1989 sections 6.6 GR2 and 8.12 GR2
      -    " "
           DISPLAY " ------------------------------------------ "
           DISPLAY " TEST0267 "
           DISPLAY " Reference 5.9 General Rules )"
           DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
           DISPLAY " UPDATE WORKS1"
           DISPLAY " SET PNUM = EMPNUM, EMPNUM = PNUM;"
      * EXEC SQL DECLARE PANDA CURSOR 
      *  FOR   SELECT DISTINCT PX.PNUM,PY.PNUM
      *  FROM WORKS PX, WORKS PY
      *  ORDER BY 2 DESC END-EXEC

      * EXEC SQL DELETE FROM WORKS1;
           CALL "SUB45" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      * EXEC SQL OPEN PANDA;
           CALL "SUB46" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
           MOVE 1 TO ii
           PERFORM P50 UNTIL ii > 36
      * EXEC SQL CLOSE PANDA;
           CALL "SUB47" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
           COMPUTE i = -1
      * EXEC SQL UPDATE WORKS1
      *  SET PNUM = EMPNUM, EMPNUM = PNUM END-EXEC
           CALL "SUB48" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
           MOVE SQLCODE TO i
           MOVE 0 TO HOURS1
      * EXEC SQL SELECT COUNT(*)  
      *  INTO :HOURS1 FROM WORKS1
      *  WHERE EMPNUM = 'P1' AND HOURS > 30 END-EXEC
           CALL "SUB49" USING SQLCODE HOURS1
           MOVE SQLCODE TO SQL-COD
           DISPLAY " The correct answer is :"
           DISPLAY " i = 0"
           DISPLAY " count1 = 6"

           DISPLAY " Your answer is :"

           DISPLAY " i = ", i

           DISPLAY " count1 = ", HOURS1

      * EXEC SQL CLOSE PANDA;
           CALL "SUB50" USING SQLCODE
           MOVE SQLCODE TO SQL-COD
      * EXEC SQL ROLLBACK WORK;
           CALL "SUB51" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

           if (i  =  0  AND  HOURS1  =  6) then
             DISPLAY " *** pass *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0267','pass','MCO') END-EXEC
             CALL "SUB52" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           else
             DISPLAY " dml060.sco *** fail *** "
      *  EXEC SQL INSERT INTO TESTREPORT
      *    VALUES('0267','fail','MCO') END-EXEC
             ADD 1 TO errcnt
             CALL "SUB53" USING SQLCODE
             MOVE SQLCODE TO SQL-COD
           END-IF
           DISPLAY "==============================================="

      * EXEC SQL COMMIT WORK;
           CALL "SUB54" USING SQLCODE
           MOVE SQLCODE TO SQL-COD

      ******************** END TEST0267 *******************





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

      *    ****  Procedures for PERFORM statements

        P50.
      *  EXEC SQL FETCH PANDA INTO :PNO1,:PNO2;
             CALL "SUB55" USING SQLCODE PNO1 PNO2
             MOVE SQLCODE TO SQL-COD
      *  EXEC SQL INSERT INTO WORKS1
      *    VALUES(:PNO1,:PNO2,:ii) END-EXEC
             CALL "SUB56" USING SQLCODE PNO1 PNO2 ii
             MOVE SQLCODE TO SQL-COD
           ADD 1 TO ii
           .

¤ Dauer der Verarbeitung: 0.39 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
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