IDENTIFICATION DIVISION.
PROGRAM-ID. DML134.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. xyz.
OBJECT-COMPUTER. xyz.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Standard COBOL (file "DML134.SCO") calling SQL
* procedures in file "DML134.MCO".
****************************************************************
*
* COMMENT SECTION
*
* DATE 1994/8/19 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.
*
* DML134.SCO
* WRITTEN BY: David W. Flater
* TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE
*
* This program tests the Information Schema and tests multiple
* Trans SQL features together.
*
* REFERENCES
* FIPS PUB 127-2 14.1 Transitional SQL
* ANSI SQL-1992
*
****************************************************************
* EXEC SQL BEGIN DECLARE SECTION END-EXEC
01 SQLCODE PIC S9(9) COMP.
01 SQLSTATE PIC X(5).
01 uid PIC X(18).
01 uidx PIC X(18).
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 dstmt PIC X(50).
01 longst PIC X(240).
01 codev PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 indic1 PIC S9(4) DISPLAY SIGN LEADING SEPARATE.
* EXEC SQL END DECLARE SECTION END-EXEC
01 norm1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 norm2 PIC S9(9) DISPLAY SIGN LEADING SEPARATE.
01 ALPNUM-TABLE VALUE IS
"01234ABCDEFGH56789IJKLMNOPQRSTUVWXYZ".
05 ALPNUM PIC X OCCURS 36 TIMES.
01 NORMSQ.
05 NORMSQX PIC X OCCURS 5 TIMES.
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 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 SQLSTATE uidx
MOVE SQLCODE TO SQL-COD
* EXEC SQL ROLLBACK WORK;
CALL "SUB2" USING SQLCODE SQLSTATE
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, Module COBOL, dml134.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 TEST0688 *******************
MOVE 1 TO flag
DISPLAY " TEST0688 "
DISPLAY " INFO_SCHEM: Dynamic changes are visible"
DISPLAY "References:"
DISPLAY " F# 1 -- Dynamic SQL"
DISPLAY " F# 2 -- Basic information schema"
DISPLAY " F# 3 -- Basic schema manipulation"
DISPLAY " FIPS Change Notice #1 -- Shortened
- " identifiers"
DISPLAY " in INFO_SCHEM"
DISPLAY " - - - - - - - - - - - - - - - - - - -"
COMPUTE SQLCODE = -1
MOVE "xxxxx" TO SQLSTATE
*Table should not exist yet
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB3" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB4" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB5" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13411 FROM :longst;"
* EXEC SQL PREPARE S13411 FROM :longst;
CALL "SUB6" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13411 CURSOR FOR S13411;"
* EXEC SQL DECLARE C13411 CURSOR FOR S13411 END-EXEC
DISPLAY "OPEN C13411;"
* EXEC SQL OPEN C13411;
CALL "SUB7" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13411 INTO :int1;"
* EXEC SQL FETCH C13411 INTO :int1;
CALL "SUB8" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13411;"
* EXEC SQL CLOSE C13411;
CALL "SUB9" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB10" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB11" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB12" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13412 FROM :longst;"
* EXEC SQL PREPARE S13412 FROM :longst;
CALL "SUB13" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13412 CURSOR FOR S13412;"
* EXEC SQL DECLARE C13412 CURSOR FOR S13412 END-EXEC
DISPLAY "OPEN C13412;"
* EXEC SQL OPEN C13412;
CALL "SUB14" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13412 INTO :int1;"
* EXEC SQL FETCH C13412 INTO :int1;
CALL "SUB15" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13412;"
* EXEC SQL CLOSE C13412;
CALL "SUB16" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "ROLLBACK WORK;"
* EXEC SQL ROLLBACK WORK;
CALL "SUB17" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""CREATE TABLE VISCHANGE (C1 INT, C2
- " FLOAT)"""
MOVE "CREATE TABLE VISCHANGE (C1 INT, C2 FLOAT) "
TO dstmt
DISPLAY "EXECUTE IMMEDIATE :dstmt;"
* EXEC SQL EXECUTE IMMEDIATE :dstmt;
CALL "SUB18" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT WORK;"
* EXEC SQL COMMIT WORK;
CALL "SUB19" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*Table should exist
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB20" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB21" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB22" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13413 FROM :longst;"
* EXEC SQL PREPARE S13413 FROM :longst;
CALL "SUB23" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13413 CURSOR FOR S13413;"
* EXEC SQL DECLARE C13413 CURSOR FOR S13413 END-EXEC
DISPLAY "OPEN C13413;"
* EXEC SQL OPEN C13413;
CALL "SUB24" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13413 INTO :int1;"
* EXEC SQL FETCH C13413 INTO :int1;
CALL "SUB25" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13413;"
* EXEC SQL CLOSE C13413;
CALL "SUB26" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB27" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB28" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB29" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13414 FROM :longst;"
* EXEC SQL PREPARE S13414 FROM :longst;
CALL "SUB30" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13414 CURSOR FOR S13414;"
* EXEC SQL DECLARE C13414 CURSOR FOR S13414 END-EXEC
DISPLAY "OPEN C13414;"
* EXEC SQL OPEN C13414;
CALL "SUB31" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13414 INTO :int1;"
* EXEC SQL FETCH C13414 INTO :int1;
CALL "SUB32" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 2; its value is ", int1
if (int1 NOT = 2) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13414;"
* EXEC SQL CLOSE C13414;
CALL "SUB33" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "ROLLBACK WORK;"
* EXEC SQL ROLLBACK WORK;
CALL "SUB34" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""ALTER TABLE VISCHANGE DROP C1 RESTRICT"""
MOVE "ALTER TABLE VISCHANGE DROP C1 RESTRICT "
TO dstmt
DISPLAY "EXECUTE IMMEDIATE :dstmt;"
* EXEC SQL EXECUTE IMMEDIATE :dstmt;
CALL "SUB35" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT WORK;"
* EXEC SQL COMMIT WORK;
CALL "SUB36" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*Deleted column should not exist
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB37" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB38" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB39" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13415 FROM :longst;"
* EXEC SQL PREPARE S13415 FROM :longst;
CALL "SUB40" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13415 CURSOR FOR S13415;"
* EXEC SQL DECLARE C13415 CURSOR FOR S13415 END-EXEC
DISPLAY "OPEN C13415;"
* EXEC SQL OPEN C13415;
CALL "SUB41" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13415 INTO :int1;"
* EXEC SQL FETCH C13415 INTO :int1;
CALL "SUB42" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13415;"
* EXEC SQL CLOSE C13415;
CALL "SUB43" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB44" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB45" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB46" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13416 FROM :longst;"
* EXEC SQL PREPARE S13416 FROM :longst;
CALL "SUB47" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13416 CURSOR FOR S13416;"
* EXEC SQL DECLARE C13416 CURSOR FOR S13416 END-EXEC
DISPLAY "OPEN C13416;"
* EXEC SQL OPEN C13416;
CALL "SUB48" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13416 INTO :int1;"
* EXEC SQL FETCH C13416 INTO :int1;
CALL "SUB49" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13416;"
* EXEC SQL CLOSE C13416;
CALL "SUB50" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "ROLLBACK WORK;"
* EXEC SQL ROLLBACK WORK;
CALL "SUB51" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""DROP TABLE VISCHANGE CASCADE"""
MOVE "DROP TABLE VISCHANGE CASCADE "
TO dstmt
DISPLAY "EXECUTE IMMEDIATE :dstmt;"
* EXEC SQL EXECUTE IMMEDIATE :dstmt;
CALL "SUB52" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT WORK;"
* EXEC SQL COMMIT WORK;
CALL "SUB53" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*Table should not exist
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB54" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.TABLES' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB55" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB56" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13417 FROM :longst;"
* EXEC SQL PREPARE S13417 FROM :longst;
CALL "SUB57" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13417 CURSOR FOR S13417;"
* EXEC SQL DECLARE C13417 CURSOR FOR S13417 END-EXEC
DISPLAY "OPEN C13417;"
* EXEC SQL OPEN C13417;
CALL "SUB58" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13417 INTO :int1;"
* EXEC SQL FETCH C13417 INTO :int1;
CALL "SUB59" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13417;"
* EXEC SQL CLOSE C13417;
CALL "SUB60" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
* EXEC SQL DELETE FROM CONCATBUF;
CALL "SUB61" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO CONCATBUF VALUES (
* 'SELECT COUNT(*) FROM INFO_SCHEM.COLUMNS' ||
* ' WHERE TABLE_SCHEM = ''FLATER'' AND' ||
* ' TABLE_NAME = ''VISCHANGE'''
* );
CALL "SUB62" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF;
CALL "SUB63" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
DISPLAY "longst=""", longst """"
DISPLAY "PREPARE S13418 FROM :longst;"
* EXEC SQL PREPARE S13418 FROM :longst;
CALL "SUB64" USING SQLCODE SQLSTATE longst
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DECLARE C13418 CURSOR FOR S13418;"
* EXEC SQL DECLARE C13418 CURSOR FOR S13418 END-EXEC
DISPLAY "OPEN C13418;"
* EXEC SQL OPEN C13418;
CALL "SUB65" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 50 TO int1
DISPLAY "FETCH C13418 INTO :int1;"
* EXEC SQL FETCH C13418 INTO :int1;
CALL "SUB66" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE C13418;"
* EXEC SQL CLOSE C13418;
CALL "SUB67" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "ROLLBACK WORK;"
* EXEC SQL ROLLBACK WORK;
CALL "SUB68" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
if ( flag = 1 ) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0688','pass','MCO');
CALL "SUB69" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml134.sco *** fail *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0688','fail','MCO');
CALL "SUB70" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
COMPUTE errcnt = errcnt + 1
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB71" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
******************** END TEST0688 ********************
******************** BEGIN TEST0689 *******************
MOVE 1 TO flag
DISPLAY " TEST0689 "
DISPLAY " Many Trans SQL features #1: inventory system"
DISPLAY "References:"
DISPLAY " F# 1 -- Dynamic SQL"
DISPLAY " F# 3 -- Basic schema manipulation"
DISPLAY " F# 4 -- Joined table"
DISPLAY " F# 6 -- VARCHAR data type"
DISPLAY " F# 7 -- TRIM function"
DISPLAY " F# 8 -- UNION in views"
DISPLAY " F# 16 -- PRIMARY KEY enhancement"
DISPLAY " F# 21 -- INSERT expressions"
DISPLAY " F# 24 -- Keyword relaxations"
DISPLAY " - - - - - - - - - - - - - - - - - - -"
COMPUTE SQLCODE = -1
MOVE "xxxxx" TO SQLSTATE
DISPLAY "CREATE TABLE COST_CODES ("
DISPLAY " COSTCODE INT UNIQUE,"
DISPLAY " COSTTEXT VARCHAR (50) NOT NULL);"
* EXEC SQL CREATE TABLE COST_CODES (
* COSTCODE INT UNIQUE,
* COSTTEXT VARCHAR (50) NOT NULL);
CALL "SUB72" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB73" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE TABLE CONDITION_CODES ("
DISPLAY " CONDCODE INT UNIQUE,"
DISPLAY " CONDTEXT VARCHAR (50) NOT NULL);"
* EXEC SQL CREATE TABLE CONDITION_CODES (
* CONDCODE INT UNIQUE,
* CONDTEXT VARCHAR (50) NOT NULL);
CALL "SUB74" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB75" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE TABLE ITEM_CODES ("
DISPLAY " ITEMCODE INT PRIMARY KEY,"
DISPLAY " ITEMTEXT VARCHAR (50) NOT NULL);"
* EXEC SQL CREATE TABLE ITEM_CODES (
* ITEMCODE INT PRIMARY KEY,
* ITEMTEXT VARCHAR (50) NOT NULL);
CALL "SUB76" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB77" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE TABLE INVENTORY ("
DISPLAY " COSTCODE INT REFERENCES COST_CODES (COSTCODE),"
DISPLAY " CONDCODE INT REFERENCES CONDITION_CODES
- " (CONDCODE),"
DISPLAY " ITEMCODE INT REFERENCES ITEM_CODES);"
* EXEC SQL CREATE TABLE INVENTORY (
* COSTCODE INT REFERENCES COST_CODES (COSTCODE),
* CONDCODE INT REFERENCES CONDITION_CODES (CONDCODE),
* ITEMCODE INT REFERENCES ITEM_CODES);
CALL "SUB78" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB79" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE VIEW COMPLETES AS"
DISPLAY " SELECT ITEMTEXT, CONDTEXT, COSTTEXT"
DISPLAY " FROM INVENTORY NATURAL JOIN COST_CODES"
DISPLAY " NATURAL JOIN CONDITION_CODES"
DISPLAY " NATURAL JOIN ITEM_CODES;"
* EXEC SQL CREATE VIEW COMPLETES AS
* SELECT ITEMTEXT, CONDTEXT, COSTTEXT
* FROM INVENTORY NATURAL JOIN COST_CODES
* NATURAL JOIN CONDITION_CODES
* NATURAL JOIN ITEM_CODES;
CALL "SUB80" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB81" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE VIEW INCOMPLETES AS"
DISPLAY " SELECT ITEMTEXT, CONDTEXT, COSTTEXT"
DISPLAY " FROM INVENTORY, COST_CODES, CONDITION_CODES,
- " ITEM_CODES"
DISPLAY " WHERE INVENTORY.ITEMCODE =
- " ITEM_CODES.ITEMCODE"
DISPLAY " AND ((INVENTORY.CONDCODE =
- " CONDITION_CODES.CONDCODE"
DISPLAY " AND INVENTORY.COSTCODE IS NULL"
DISPLAY " AND COST_CODES.COSTCODE IS NULL)"
DISPLAY " OR (INVENTORY.COSTCODE =
- " COST_CODES.COSTCODE"
DISPLAY " AND INVENTORY.CONDCODE IS NULL"
DISPLAY " AND CONDITION_CODES.CONDCODE IS
- " NULL));"
* EXEC SQL CREATE VIEW INCOMPLETES AS
* SELECT ITEMTEXT, CONDTEXT, COSTTEXT
* FROM INVENTORY, COST_CODES, CONDITION_CODES, ITEM_CODES
* WHERE INVENTORY.ITEMCODE = ITEM_CODES.ITEMCODE
* AND ((INVENTORY.CONDCODE = CONDITION_CODES.CONDCODE
* AND INVENTORY.COSTCODE IS NULL
* AND COST_CODES.COSTCODE IS NULL)
* OR (INVENTORY.COSTCODE = COST_CODES.COSTCODE
* AND INVENTORY.CONDCODE IS NULL
* AND CONDITION_CODES.CONDCODE IS NULL));
CALL "SUB82" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB83" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE VIEW VERBOSE_INV AS"
DISPLAY " SELECT * FROM COMPLETES UNION SELECT * FROM
- " INCOMPLETES;"
* EXEC SQL CREATE VIEW VERBOSE_INV AS
* SELECT * FROM COMPLETES UNION SELECT * FROM INCOMPLETES
* ;
CALL "SUB84" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB85" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*In a "real" program, all this would be read from files.
DISPLAY "dstmt=""INSERT INTO COST_CODES VALUES (?, TRIM
- " (?))"""
MOVE "INSERT INTO COST_CODES VALUES (?, TRIM (?)) "
TO dstmt
DISPLAY "PREPARE S13421 FROM :dstmt;"
* EXEC SQL PREPARE S13421 FROM :dstmt;
CALL "SUB86" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
COMPUTE indic1 = -1
MOVE "No cost code assigned "
TO dstmt
DISPLAY "indic1 = -1"
DISPLAY "dstmt=""No cost code assigned"""
DISPLAY "EXECUTE S13421 USING :codev:indic1, :dstmt;"
* EXEC SQL EXECUTE S13421 USING :codev:indic1, :dstmt
* ;
CALL "SUB87" USING SQLCODE SQLSTATE codev indic1 dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 0 TO codev
MOVE "Expensive "
TO dstmt
DISPLAY "codev = 0"
DISPLAY "dstmt=""Expensive"""
DISPLAY "EXECUTE S13421 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13421 USING :codev, :dstmt;
CALL "SUB88" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 1 TO codev
MOVE "Absurdly expensive "
TO dstmt
DISPLAY "codev = 1"
DISPLAY "dstmt=""Absurdly expensive"""
DISPLAY "EXECUTE S13421 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13421 USING :codev, :dstmt;
CALL "SUB89" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 2 TO codev
MOVE "Outrageously expensive "
TO dstmt
DISPLAY "codev = 2"
DISPLAY "dstmt=""Outrageously expensive"""
DISPLAY "EXECUTE S13421 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13421 USING :codev, :dstmt;
CALL "SUB90" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 3 TO codev
MOVE "Robbery; a complete and total rip-off
- " " TO dstmt
DISPLAY "codev = 3"
DISPLAY "dstmt=""Robbery; a complete and total rip-off"""
DISPLAY "EXECUTE S13421 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13421 USING :codev, :dstmt;
CALL "SUB91" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""INSERT INTO CONDITION_CODES VALUES (?,
- " TRIM (?))"""
MOVE "INSERT INTO CONDITION_CODES VALUES (?, TRIM (?)) "
TO dstmt
DISPLAY "PREPARE S13422 FROM :dstmt;"
* EXEC SQL PREPARE S13422 FROM :dstmt;
CALL "SUB92" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
COMPUTE indic1 = -1
MOVE "Unknown "
TO dstmt
DISPLAY "indic1 = -1"
DISPLAY "dstmt=""Unknown"""
DISPLAY "EXECUTE S13422 USING :codev:indic1, :dstmt;"
* EXEC SQL EXECUTE S13422 USING :codev:indic1, :dstmt
* ;
CALL "SUB93" USING SQLCODE SQLSTATE codev indic1 dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 1 TO codev
MOVE "Slightly used "
TO dstmt
DISPLAY "codev = 1"
DISPLAY "dstmt=""Slightly used"""
DISPLAY "EXECUTE S13422 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13422 USING :codev, :dstmt;
CALL "SUB94" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 2 TO codev
MOVE "Returned as defective "
TO dstmt
DISPLAY "codev = 2"
DISPLAY "dstmt=""Returned as defective"""
DISPLAY "EXECUTE S13422 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13422 USING :codev, :dstmt;
CALL "SUB95" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 3 TO codev
MOVE "Visibly damaged (no returns) "
TO dstmt
DISPLAY "codev = 3"
DISPLAY "dstmt=""Visibly damaged (no returns)"""
DISPLAY "EXECUTE S13422 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13422 USING :codev, :dstmt;
CALL "SUB96" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""INSERT INTO ITEM_CODES VALUES (?, TRIM
- " (?))"""
MOVE "INSERT INTO ITEM_CODES VALUES (?, TRIM (?)) "
TO dstmt
DISPLAY "PREPARE S13423 FROM :dstmt;"
* EXEC SQL PREPARE S13423 FROM :dstmt;
CALL "SUB97" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 1 TO codev
MOVE "Lousy excuse for a tape deck "
TO dstmt
DISPLAY "codev = 1"
DISPLAY "dstmt=""Lousy excuse for a tape deck"""
DISPLAY "EXECUTE S13423 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13423 USING :codev, :dstmt;
CALL "SUB98" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 3 TO codev
MOVE "World's worst VCR "
TO dstmt
DISPLAY "codev = 3"
DISPLAY "dstmt=""World's worst VCR"""
DISPLAY "EXECUTE S13423 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13423 USING :codev, :dstmt;
CALL "SUB99" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 4 TO codev
MOVE "Irreparable intermittent CD player "
TO dstmt
DISPLAY "codev = 4"
DISPLAY "dstmt=""Irreparable intermittent CD player"""
DISPLAY "EXECUTE S13423 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13423 USING :codev, :dstmt;
CALL "SUB100" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 7 TO codev
MOVE "Self-destruct VGA monitor w/ critical need
- " detect " TO dstmt
DISPLAY "codev = 7"
DISPLAY "dstmt=""Self-destruct VGA monitor w/ critical need
- " detect"""
DISPLAY "EXECUTE S13423 USING :codev, :dstmt;"
* EXEC SQL EXECUTE S13423 USING :codev, :dstmt;
CALL "SUB101" USING SQLCODE SQLSTATE codev dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "dstmt=""INSERT INTO INVENTORY VALUES (?, ?, ?)"""
MOVE "INSERT INTO INVENTORY VALUES (?, ?, ?) "
TO dstmt
DISPLAY "PREPARE S13424 FROM :dstmt;"
* EXEC SQL PREPARE S13424 FROM :dstmt;
CALL "SUB102" USING SQLCODE SQLSTATE dstmt
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 3 TO int1
COMPUTE indic1 = -1
MOVE 4 TO int3
DISPLAY "int1 = 3"
DISPLAY "indic1 = -1"
DISPLAY "int3 = 4"
DISPLAY "EXECUTE S13424 USING :int1, :int2:indic1, :int3;"
* EXEC SQL EXECUTE S13424 USING :int1, :int2:indic1, :int3
* ;
CALL "SUB103" USING SQLCODE SQLSTATE int1 int2 indic1 int3
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 1 TO int1
MOVE 2 TO int2
MOVE 3 TO int3
DISPLAY "int1 = 1"
DISPLAY "int2 = 2"
DISPLAY "int3 = 3"
DISPLAY "EXECUTE S13424 USING :int1, :int2, :int3;"
* EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3;
CALL "SUB104" USING SQLCODE SQLSTATE int1 int2 int3
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 2 TO int1
MOVE 3 TO int2
MOVE 7 TO int3
DISPLAY "int1 = 2"
DISPLAY "int2 = 3"
DISPLAY "int3 = 7"
DISPLAY "EXECUTE S13424 USING :int1, :int2, :int3;"
* EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3;
CALL "SUB105" USING SQLCODE SQLSTATE int1 int2 int3
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 0 TO int1
MOVE 3 TO int2
MOVE 1 TO int3
DISPLAY "int1 = 0"
DISPLAY "int2 = 3"
DISPLAY "int3 = 1"
DISPLAY "EXECUTE S13424 USING :int1, :int2, :int3;"
* EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3;
CALL "SUB106" USING SQLCODE SQLSTATE int1 int2 int3
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
MOVE 3 TO int1
MOVE 1 TO int2
MOVE 7 TO int3
DISPLAY "int1 = 3"
DISPLAY "int2 = 1"
DISPLAY "int3 = 7"
DISPLAY "EXECUTE S13424 USING :int1, :int2, :int3;"
* EXEC SQL EXECUTE S13424 USING :int1, :int2, :int3;
CALL "SUB107" USING SQLCODE SQLSTATE int1 int2 int3
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*End of data loading
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV;"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* ;
CALL "SUB108" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 5; its value is ", int1
if (int1 NOT = 5) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM INCOMPLETES;"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM INCOMPLETES
* ;
CALL "SUB109" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM COMPLETES;"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM COMPLETES;
CALL "SUB110" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 4; its value is ", int1
if (int1 NOT = 4) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV"
DISPLAY " WHERE ITEMTEXT = 'Irreparable intermittent CD
- " player'"
DISPLAY " AND CONDTEXT = 'Unknown'"
DISPLAY " AND COSTTEXT = 'Robbery; a complete and total
- " rip-off';"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* WHERE ITEMTEXT = 'Irreparable intermittent CD player'
* AND CONDTEXT = 'Unknown'
* AND COSTTEXT = 'Robbery; a complete and total rip-off'
* ;
CALL "SUB111" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV"
DISPLAY " WHERE ITEMTEXT = 'Lousy excuse for a tape deck'"
DISPLAY " AND CONDTEXT = 'Visibly damaged (no returns)'"
DISPLAY " AND COSTTEXT = 'Expensive';"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* WHERE ITEMTEXT = 'Lousy excuse for a tape deck'
* AND CONDTEXT = 'Visibly damaged (no returns)'
* AND COSTTEXT = 'Expensive';
CALL "SUB112" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV"
DISPLAY " WHERE ITEMTEXT ="
DISPLAY " 'Self-destruct VGA monitor w/ critical need
- " detect'"
DISPLAY " AND CONDTEXT = 'Slightly used'"
DISPLAY " AND COSTTEXT = 'Robbery; a complete and total
- " rip-off';"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* WHERE ITEMTEXT =
* 'Self-destruct VGA monitor w/ critical need detect'
* AND CONDTEXT = 'Slightly used'
* AND COSTTEXT = 'Robbery; a complete and total rip-off'
* ;
CALL "SUB113" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV"
DISPLAY " WHERE ITEMTEXT ="
DISPLAY " 'Self-destruct VGA monitor w/ critical need
- " detect'"
DISPLAY " AND CONDTEXT = 'Visibly damaged (no returns)'"
DISPLAY " AND COSTTEXT = 'Outrageously expensive';"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* WHERE ITEMTEXT =
* 'Self-destruct VGA monitor w/ critical need detect'
* AND CONDTEXT = 'Visibly damaged (no returns)'
* AND COSTTEXT = 'Outrageously expensive';
CALL "SUB114" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV"
DISPLAY " WHERE ITEMTEXT = 'World''s worst VCR'"
DISPLAY " AND CONDTEXT = 'Returned as defective'"
DISPLAY " AND COSTTEXT = 'Absurdly expensive';"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM VERBOSE_INV
* WHERE ITEMTEXT = 'World''s worst VCR'
* AND CONDTEXT = 'Returned as defective'
* AND COSTTEXT = 'Absurdly expensive';
CALL "SUB115" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB116" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DROP TABLE INVENTORY CASCADE;"
* EXEC SQL DROP TABLE INVENTORY CASCADE;
CALL "SUB117" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB118" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DROP TABLE COST_CODES CASCADE;"
* EXEC SQL DROP TABLE COST_CODES CASCADE;
CALL "SUB119" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB120" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DROP TABLE CONDITION_CODES CASCADE;"
* EXEC SQL DROP TABLE CONDITION_CODES CASCADE;
CALL "SUB121" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB122" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "DROP TABLE ITEM_CODES CASCADE;"
* EXEC SQL DROP TABLE ITEM_CODES CASCADE;
CALL "SUB123" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB124" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
if ( flag = 1 ) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0689','pass','MCO');
CALL "SUB125" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml134.sco *** fail *** "
* EXEC SQL INSERT INTO HU.TESTREPORT
* VALUES('0689','fail','MCO');
CALL "SUB126" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
COMPUTE errcnt = errcnt + 1
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB127" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
******************** END TEST0689 ********************
******************** BEGIN TEST0690 *******************
MOVE 1 TO flag
DISPLAY " TEST0690 "
DISPLAY " Many Trans SQL features #2: talk show schedule"
DISPLAY "References:"
DISPLAY " F# 3 -- Basic schema manipulation"
DISPLAY " F# 5 -- DATETIME data types"
DISPLAY " F# 6 -- VARCHAR data type"
DISPLAY " F# 16 -- PRIMARY KEY enhancement"
DISPLAY " F# 20 -- CAST functions"
DISPLAY " F# 21 -- INSERT expressions"
DISPLAY " F# 24 -- Keyword relaxations"
DISPLAY " TC #2 5.3 6.10"
DISPLAY " X3H2-94-015/DBL SOU-031, SQL-92 Errata:"
DISPLAY " Casting Between Datetimes and Character
- " Strings"
DISPLAY " - - - - - - - - - - - - - - - - - - -"
COMPUTE SQLCODE = -1
MOVE "xxxxx" TO SQLSTATE
DISPLAY "CREATE TABLE PORGRAM ("
DISPLAY " SEGNO INT PRIMARY KEY,"
DISPLAY " STARTS TIME NOT NULL,"
DISPLAY " LASTS INTERVAL MINUTE TO SECOND NOT NULL,"
DISPLAY " SEGMENT VARCHAR (50));"
* EXEC SQL CREATE TABLE PORGRAM (
* SEGNO INT PRIMARY KEY,
* STARTS TIME NOT NULL,
* LASTS INTERVAL MINUTE TO SECOND NOT NULL,
* SEGMENT VARCHAR (50));
CALL "SUB128" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB129" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "CREATE VIEW GAPS AS"
DISPLAY " SELECT * FROM PORGRAM AS OUTERR WHERE NOT
- " EXISTS"
DISPLAY " (SELECT * FROM PORGRAM AS INNERR WHERE
- " OUTERR.STARTS"
DISPLAY " + OUTERR.LASTS = INNERR.STARTS);"
* EXEC SQL CREATE VIEW GAPS AS
* SELECT * FROM PORGRAM AS OUTERR WHERE NOT EXISTS
* (SELECT * FROM PORGRAM AS INNERR WHERE OUTERR.STARTS
* + OUTERR.LASTS = INNERR.STARTS);
CALL "SUB130" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "COMMIT;"
* EXEC SQL COMMIT;
CALL "SUB131" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 1, TIME '12:00:00',"
DISPLAY " CAST ('10:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Monologue');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 1, TIME '12:00:00',
* CAST ('10:00' AS INTERVAL MINUTE TO SECOND),
* 'Monologue');
CALL "SUB132" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 2, TIME '12:10:00',"
DISPLAY " CAST ('04:30' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 2, TIME '12:10:00',
* CAST ('04:30' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials');
CALL "SUB133" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 3, TIME '12:14:30',"
DISPLAY " CAST ('12:30' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Braunschweiger, plug Explosion Man II');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 3, TIME '12:14:30',
* CAST ('12:30' AS INTERVAL MINUTE TO SECOND),
* 'Braunschweiger, plug Explosion Man II');
CALL "SUB134" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 4, TIME '12:27:00',"
DISPLAY " CAST ('03:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 4, TIME '12:27:00',
* CAST ('03:00' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials');
CALL "SUB135" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 5, TIME '12:30:00',"
DISPLAY " CAST ('00:10' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Tease');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 5, TIME '12:30:00',
* CAST ('00:10' AS INTERVAL MINUTE TO SECOND),
* 'Tease');
CALL "SUB136" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 6, TIME '12:30:10',"
DISPLAY " CAST ('03:50' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials, local news');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 6, TIME '12:30:10',
* CAST ('03:50' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials, local news');
CALL "SUB137" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 7, TIME '12:34:00',"
DISPLAY " CAST ('11:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Spinal Tap, plug Asexual Harassment');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 7, TIME '12:34:00',
* CAST ('11:00' AS INTERVAL MINUTE TO SECOND),
* 'Spinal Tap, plug Asexual Harassment');
CALL "SUB138" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 8, TIME '12:45:00',"
DISPLAY " CAST ('05:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 8, TIME '12:45:00',
* CAST ('05:00' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials');
CALL "SUB139" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 9, TIME '12:50:00',"
DISPLAY " CAST ('05:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Spinal Tap, play Ode du Toilette');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 9, TIME '12:50:00',
* CAST ('05:00' AS INTERVAL MINUTE TO SECOND),
* 'Spinal Tap, play Ode du Toilette');
CALL "SUB140" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 10, TIME '12:55:00',"
DISPLAY " CAST ('03:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 10, TIME '12:55:00',
* CAST ('03:00' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials');
CALL "SUB141" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 11, TIME '12:58:00',"
DISPLAY " CAST ('00:10' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Credits');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 11, TIME '12:58:00',
* CAST ('00:10' AS INTERVAL MINUTE TO SECOND),
* 'Credits');
CALL "SUB142" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 12, TIME '12:58:10',"
DISPLAY " CAST ('01:50' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'Stupid commercials');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 12, TIME '12:58:10',
* CAST ('01:50' AS INTERVAL MINUTE TO SECOND),
* 'Stupid commercials');
CALL "SUB143" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "INSERT INTO PORGRAM VALUES ("
DISPLAY " 13, TIME '13:00:00',"
DISPLAY " CAST ('00:00' AS INTERVAL MINUTE TO SECOND),"
DISPLAY " 'END');"
* EXEC SQL INSERT INTO PORGRAM VALUES (
* 13, TIME '13:00:00',
* CAST ('00:00' AS INTERVAL MINUTE TO SECOND),
* 'END');
CALL "SUB144" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
*In the beginning, all was good.
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM GAPS;"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM GAPS;
CALL "SUB145" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
*Braunschweiger was late. Move up Spinal Tap.
DISPLAY "UPDATE PORGRAM"
DISPLAY " SET STARTS = TIME '12:14:30'"
DISPLAY " WHERE SEGNO = 7;"
* EXEC SQL UPDATE PORGRAM
* SET STARTS = TIME '12:14:30'
* WHERE SEGNO = 7;
CALL "SUB146" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "UPDATE PORGRAM SET STARTS = STARTS -"
DISPLAY " CAST ('01:30' AS INTERVAL MINUTE TO SECOND)"
DISPLAY " WHERE SEGNO >= 4 AND SEGNO <= 6;"
* EXEC SQL UPDATE PORGRAM SET STARTS = STARTS -
* CAST ('01:30' AS INTERVAL MINUTE TO SECOND)
* WHERE SEGNO >= 4 AND SEGNO <= 6;
CALL "SUB147" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
DISPLAY "UPDATE PORGRAM SET STARTS = TIME '12:28:40' +"
DISPLAY " CAST ('03:50' AS INTERVAL MINUTE TO SECOND)"
DISPLAY " WHERE SEGNO = 3;"
* EXEC SQL UPDATE PORGRAM SET STARTS = TIME '12:28:40' +
* CAST ('03:50' AS INTERVAL MINUTE TO SECOND)
* WHERE SEGNO = 3;
CALL "SUB148" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
COMPUTE int1 = -1
DISPLAY "SELECT COUNT(*) INTO :int1 FROM GAPS;"
* EXEC SQL SELECT COUNT(*) INTO :int1 FROM GAPS;
CALL "SUB149" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 0; its value is ", int1
if (int1 NOT = 0) then
MOVE 0 TO flag
END-IF
DISPLAY "DECLARE ARNOLD CURSOR FOR"
DISPLAY " SELECT SEGNO FROM PORGRAM ORDER BY STARTS;"
* EXEC SQL DECLARE ARNOLD CURSOR FOR
* SELECT SEGNO FROM PORGRAM ORDER BY STARTS END-EXEC
DISPLAY "OPEN ARNOLD;"
* EXEC SQL OPEN ARNOLD;
CALL "SUB150" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB151" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 1; its value is ", int1
if (int1 NOT = 1) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB152" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 2; its value is ", int1
if (int1 NOT = 2) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB153" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 7; its value is ", int1
if (int1 NOT = 7) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB154" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 4; its value is ", int1
if (int1 NOT = 4) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB155" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 5; its value is ", int1
if (int1 NOT = 5) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB156" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 6; its value is ", int1
if (int1 NOT = 6) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB157" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 3; its value is ", int1
if (int1 NOT = 3) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB158" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 8; its value is ", int1
if (int1 NOT = 8) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB159" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 9; its value is ", int1
if (int1 NOT = 9) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB160" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 10; its value is ", int1
if (int1 NOT = 10) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB161" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 11; its value is ", int1
if (int1 NOT = 11) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB162" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 12; its value is ", int1
if (int1 NOT = 12) then
MOVE 0 TO flag
END-IF
COMPUTE int1 = -1
DISPLAY "FETCH ARNOLD INTO :int1;"
* EXEC SQL FETCH ARNOLD INTO :int1;
CALL "SUB163" USING SQLCODE SQLSTATE int1
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY "int1 should be 13; its value is ", int1
if (int1 NOT = 13) then
MOVE 0 TO flag
END-IF
DISPLAY "CLOSE ARNOLD;"
* EXEC SQL CLOSE ARNOLD;
CALL "SUB164" USING SQLCODE SQLSTATE
MOVE SQLCODE TO SQL-COD
PERFORM CHCKOK
DISPLAY " "
--> --------------------
--> maximum size reached
--> --------------------
[ zur Elbe Produktseite wechseln0.82Quellennavigators
Analyse erneut starten
]
|