IDENTIFICATION DIVISION .
PROGRAM-ID . DML072.
ENVIRONMENT DIVISION .
CONFIGURATION SECTION .
SOURCE-COMPUTER . xyz.
OBJECT-COMPUTER . xyz.
DATA DIVISION .
WORKING-STORAGE SECTION .
* Standard COBOL (file "DML072.SCO") calling SQL
* procedures in file "DML072.MCO".
****************************************************************
*
* COMMENT SECTION
*
* DATE 1989/08/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.
*
* DML072.SCO
* WRITTEN BY: SUN DAJUN
*
* THIS ROUTINE TESTS MISCELLANEOUS FEATURES
*
* REFERENCES
* AMERICAN NATIONAL STANDARD database language -
* X3.135-1989, 8.10, GR 9 c)
*
****************************************************************
* EXEC SQL BEGIN DECLARE SECTION END-EXEC
01 EMPNO1 PIC X(10 ).
01 GRD1 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 uid PIC X(18 ).
01 uidx PIC X(18 ).
* EXEC SQL END DECLARE SECTION END-EXEC
01 cnt PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 count1 PIC S9(9 ) DISPLAY SIGN LEADING SEPARATE .
01 SQLCODE PIC S9(9 ) COMP .
01 errcnt PIC S9(4 ) DISPLAY SIGN LEADING SEPARATE .
01 EMPNO-CHARS.
05 EMPNO-CHAR PIC X OCCURS 10 TIMES.
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, dml072.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 TEST0390 *******************
DISPLAY " TEST0390 "
DISPLAY " Short char column value blank_padded in larger
- " variables"
DISPLAY "Reference: ANSI X3.168-1989 9.4 SR 4) c)"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - - -"
MOVE "xxxxxxxxxx" TO EMPNO1
* EXEC SQL SELECT EMPNUM, GRADE INTO :EMPNO1, :GRD1 FROM
* STAFF
* WHERE EMPNUM = 'E1' END-EXEC
CALL "SUB1" USING SQLCODE EMPNO1 GRD1
MOVE SQLCODE TO SQL-COD
MOVE EMPNO1 TO EMPNO-CHARS
MOVE 0 TO count1
MOVE 3 TO cnt
PERFORM P50 UNTIL cnt > 10
DISPLAY "The correct answer is:"
DISPLAY " E1 , 12, 8"
DISPLAY "Your answer is:"
DISPLAY " " , EMPNO1 ", " , GRD1 ", " , count1
if (GRD1 = 12 AND count1 = 8 AND EMPNO1 = "E1 " )
then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0390','pass','MCO') END-EXEC
CALL "SUB2" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml072.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0390','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB3" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY
"===================================================="
* EXEC SQL COMMIT WORK END-EXEC
CALL "SUB4" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0390 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOP RUN .
* **** Procedures for PERFORM statements
P50.
if (EMPNO-CHAR (cnt) = space ) then
COMPUTE count1 = count1 + 1
END-IF
ADD 1 TO cnt
.
Messung V0.5 in Prozent C=74 H=100 G=87
[Dauer der Verarbeitung: 0.65 Sekunden, vorverarbeitet 2026-09-27]