* Standard COBOL (file "DML124.SCO") calling SQL * procedures in file "DML124.MCO".
**************************************************************** * * COMMENT SECTION * * DATE 1994/6/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. * * DML124.SCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * Bug fixes & stronger pass criteria by Joan Sullivan 2/27/95 * Corrected in accordance with X3H2-95-105 5/9/95 * * This routine tests SQL descriptors, which is a feature of * Dynamic SQL. * * 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) DISPLAYSIGNLEADINGSEPARATE.
01 int2 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 int3 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 int4 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 int5 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 int6 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 int7 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 flt1 PIC S9(4)V9(4) DISPLAYSIGNLEADINGSEPARATE. * OK to change the precision of smint1 to match SMALLINT
01 smint1 PIC S9(2) BINARY. * OK to change the precision of bin2 to match SMALLINT
01 bin2 PIC S9(2) BINARY. * OK to change the precision of bin9 to match INTEGER
01 bin9 PIC S9(9) BINARY.
01 dstmt PIC X(50).
01 longst PIC X(240).
01 cname PIC X(20).
01 indic1 PIC S9(4) DISPLAYSIGNLEADINGSEPARATE.
01 c2 PIC X(2).
01 c4 PIC X(4).
01 c6 PIC X(6).
01 c7 PIC X(7). * EXEC SQL END DECLARE SECTION END-EXEC
01 FLT-1 PIC -(5).9999.
01 BIN-1 PIC -(5).
01 intprc PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 relprc PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 norm1 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 norm2 PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 ALPNUM-TABLE VALUEIS "01234ABCDEFGH56789IJKLMNOPQRSTUVWXYZ".
05 ALPNUM PIC X OCCURS 36 TIMES.
01 NORMSQ.
05 NORMSQX PIC X OCCURS 5 TIMES.
01 errcnt PIC S9(9) DISPLAYSIGNLEADINGSEPARATE. *date_time declaration
01 TO-DAY PIC 9(6).
01 THE-TIME PIC 9(8).
01 flag PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
01 SQL-COD PIC S9(9) DISPLAYSIGNLEADINGSEPARATE.
PROCEDUREDIVISION.
P0.
MOVE"HU "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" STOPRUN END-IF MOVE 0 TO errcnt
DISPLAY "SQL Test Suite, V6.0, Module COBOL, dml124.sco" DISPLAY "59-byte ID" DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
*This test was converted from a FLATER test to a HU test. We *need CONCATBUF. DISPLAY"CREATE TABLE CONCATBUF (ZZ CHAR(240));" * EXEC SQL CREATE TABLE CONCATBUF (ZZ CHAR(240)); CALL"SUB3"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD DISPLAY"COMMIT WORK;" * EXEC SQL COMMIT WORK; CALL"SUB4"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD
******************** BEGIN TEST0653 ******************* MOVE 1 TO flag
DISPLAY"ALLOCATE DESCRIPTOR 'D12411' WITH MAX 8;" * EXEC SQL ALLOCATE DESCRIPTOR 'D12411' WITH MAX 8; CALL"SUB9"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK if (SQLSTATE = "07009") then DISPLAY"Received SQLSTATE 07009!" DISPLAY"This test must be rewritten by NIST (in the
- " event of" DISPLAY"a validation) to accomodate
- " implementation-defined" DISPLAY"limit on ." END-IF DISPLAY" "
DISPLAY"dstmt=""SELECT * FROM HU.STAFF""" MOVE"SELECT * FROM HU.STAFF
- " "TO dstmt
DISPLAY"PREPARE S12411 FROM :dstmt;" * EXEC SQL PREPARE S12411 FROM :dstmt; CALL"SUB10"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"GET DESCRIPTOR 'D12411' :int1 = COUNT;" * EXEC SQL GET DESCRIPTOR 'D12411' :int1 = COUNT; CALL"SUB12"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
*CHARACTER_SET_* and COLLATION_* are orphaned features
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 1" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = LENGTH, :int5 =
- " OCTET_LENGTH;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 1 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = LENGTH, :int5 = OCTET_LENGTH * ; CALL"SUB13"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1 (CHARACTER); its value is ", int1 DISPLAY"int2 should be 0 (NOT NULL); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'EMPNUM '; its value
- " is '", cname "'" DISPLAY"int4 should be 3; its value is ", int4 DISPLAY"int5 should be > 2; its value is ", int5 if (int1 NOT = 1 OR int2 NOT = 0 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 NOT = 3 OR int5 NOT > 2) then MOVE 0 TO flag END-IF if (cname NOT = "EMPNUM ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 2" DISPLAY" :bin9 = TYPE, :int2 = NULLABLE, :bin2 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = LENGTH, :int5 =
- " OCTET_LENGTH;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 2 * :bin9 = TYPE, :int2 = NULLABLE, :bin2 = UNNAMED, * :cname = NAME, :int4 = LENGTH, :int5 = OCTET_LENGTH * ; CALL"SUB14"USING SQLCODE SQLSTATE
bin9 int2 bin2 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK MOVE bin9 TO BIN-1 DISPLAY"bin9 should be 1 (CHARACTER); its value is " BIN-1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 MOVE bin2 TO BIN-1 DISPLAY"bin2 should be 0 (named); its value is ", BIN-1 DISPLAY"cname should be 'EMPNAME '; its value
- " is '", cname "'" DISPLAY"int4 should be 20; its value is ", int4 DISPLAY"int5 should be > 14; its value is ", int5 if (bin9 NOT = 1 OR int2 NOT = 1 OR bin2 NOT = 0) then MOVE 0 TO flag END-IF if (int4 NOT = 20 OR int5 NOT > 14) then MOVE 0 TO flag END-IF if (cname NOT = "EMPNAME ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 3" DISPLAY" :bin2 = TYPE, :int2 = NULLABLE, :bin9 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 3 * :bin2 = TYPE, :int2 = NULLABLE, :bin9 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB15"USING SQLCODE SQLSTATE
bin2 int2 bin9 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK MOVE bin2 TO BIN-1 DISPLAY"bin2 should be 3 (DECIMAL); its value is ", BIN-1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 MOVE bin9 TO BIN-1 DISPLAY"bin9 should be 0 (named); its value is ", BIN-1 DISPLAY"cname should be 'GRADE '; its value
- " is '", cname "'" DISPLAY"int4 should be >= 4; its value is ", int4 DISPLAY"int5 should be 0; its value is ", int5 if (bin2 NOT = 3 OR int2 NOT = 1 OR bin9 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 4 OR int5 NOT = 0) then MOVE 0 TO flag END-IF if (cname NOT = "GRADE ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 4" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :bin2 =
- " UNNAMED," DISPLAY" :cname = NAME, :bin9 = LENGTH, :int5 =
- " OCTET_LENGTH;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 4 * :int1 = TYPE, :int2 = NULLABLE, :bin2 = UNNAMED, * :cname = NAME, :bin9 = LENGTH, :int5 = OCTET_LENGTH * ; CALL"SUB16"USING SQLCODE SQLSTATE
int1 int2 bin2 cname bin9 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1 (CHARACTER); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 MOVE bin2 TO BIN-1 DISPLAY"bin2 should be 0 (named); its value is ", BIN-1 DISPLAY"cname should be 'CITY '; its value
- " is '", cname "'" MOVE bin9 TO BIN-1 DISPLAY"bin9 should be 15; its value is ", BIN-1 DISPLAY"int5 should be > 11; its value is ", int5 if (int1 NOT = 1 OR int2 NOT = 1 OR bin2 NOT = 0) then MOVE 0 TO flag END-IF if (bin9 NOT = 15 OR int5 NOT > 11) then MOVE 0 TO flag END-IF if (cname NOT = "CITY ") then MOVE 0 TO flag END-IF
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB17"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT * FROM CACHESTAT, COMBINATIONS' || * ' WHERE HIT_RATIO < .97' * ); CALL"SUB18"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB19"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S12412 FROM :longst;" * EXEC SQL PREPARE S12412 FROM :longst; CALL"SUB20"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DESCRIBE S12412 USING SQL DESCRIPTOR 'D12411';" * EXEC SQL DESCRIBE S12412 USING SQL DESCRIPTOR 'D12411' * ; CALL"SUB21"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"GET DESCRIPTOR 'D12411' :int1 = COUNT;" * EXEC SQL GET DESCRIPTOR 'D12411' :int1 = COUNT; CALL"SUB22"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
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 1" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 1 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION; CALL"SUB23"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 6 (FLOAT); its value is ", int1 DISPLAY"int2 should be 0 (NOT NULL); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'HIT_RATIO '; its value
- " is '", cname "'" DISPLAY"int4 should be > 0; its value is ", int4 if (int1 NOT = 6 OR int2 NOT = 0 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 NOT > 0) then MOVE 0 TO flag END-IF if (cname NOT = "HIT_RATIO ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 2" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 2 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION; CALL"SUB24"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 6 (FLOAT); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'FRAGMENTATION_PCT '; its value
- " is '", cname "'" DISPLAY"int4 should be > 0; its value is ", int4 if (int1 NOT = 6 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 1) then MOVE 0 TO flag END-IF if (cname NOT = "FRAGMENTATION_PCT ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 3" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 3 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB25"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4 (INTEGER); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'INTTEST '; its value
- " is '", cname "'" DISPLAY"int4 should be > 0; its value is ", int4 DISPLAY"int5 should be 0; its value is ", int5 if (int1 NOT = 4 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 1 OR int5 NOT = 0) then MOVE 0 TO flag END-IF if (cname NOT = "INTTEST ") then MOVE 0 TO flag END-IF MOVE int4 TO intprc
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 4" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 4 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION; CALL"SUB26"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 7 (REAL); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'REALTEST '; its value
- " is '", cname "'" DISPLAY"int4 should be > 0; its value is ", int4 if (int1 NOT = 7 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 1) then MOVE 0 TO flag END-IF if (cname NOT = "REALTEST ") then MOVE 0 TO flag END-IF MOVE int4 TO relprc
DISPLAY"GET DESCRIPTOR 'D12411' VALUE :int6" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE :int6 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB27"USING SQLCODE SQLSTATE
int6 int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 5 (SMALLINT); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'SMALLTEST '; its value
- " is '", cname "'" DISPLAY"int4 should be 0 < int4 <= ", intprc "; its value
- " is ", int4 DISPLAY"int5 should be 0; its value is ", int5 if (int1 NOT = 4 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 1 OR int4 > intprc OR int5 NOT = 0) then MOVE 0 TO flag END-IF if (cname NOT = "SMALLTEST ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 6" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 6 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION; CALL"SUB28"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 8 (DOUBLE); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'DOUBLETEST '; its value
- " is '", cname "'" DISPLAY"int4 should be > ", relprc "; its value is ", int4 if (int1 NOT = 8 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 1 OR int4 NOT > relprc) then MOVE 0 TO flag END-IF if (cname NOT = "DOUBLETEST ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 7" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 7 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB29"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2 (NUMERIC); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'NUMTEST '; its value
- " is '", cname "'" DISPLAY"int4 should be 13; its value is ", int4 DISPLAY"int5 should be 6; its value is ", int5 if (int1 NOT = 2 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 NOT = 13 OR int5 NOT = 6) then MOVE 0 TO flag END-IF if (cname NOT = "NUMTEST ") then MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 8" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 8 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB30"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 3 (DECIMAL); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'DECTEST '; its value
- " is '", cname "'" DISPLAY"int4 should be >= 13; its value is ", int4 DISPLAY"int5 should be 6; its value is ", int5 if (int1 NOT = 3 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int4 < 13 OR int5 NOT = 6) then MOVE 0 TO flag END-IF if (cname NOT = "DECTEST ") then MOVE 0 TO flag END-IF
*Unnamed columns
DISPLAY"dstmt=""SELECT USER, COUNT(*) FROM HU.ECCO""" MOVE"SELECT USER, COUNT(*) FROM HU.ECCO
- " "TO dstmt
DISPLAY"PREPARE S12413 FROM :dstmt;" * EXEC SQL PREPARE S12413 FROM :dstmt; CALL"SUB31"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DESCRIBE S12413 USING SQL DESCRIPTOR 'D12411';" * EXEC SQL DESCRIBE S12413 USING SQL DESCRIPTOR 'D12411' * ; CALL"SUB32"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"GET DESCRIPTOR 'D12411' :int1 = COUNT;" * EXEC SQL GET DESCRIPTOR 'D12411' :int1 = COUNT; CALL"SUB33"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"GET DESCRIPTOR 'D12411' VALUE 1" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = LENGTH, :int5 =
- " OCTET_LENGTH;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 1 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = LENGTH, :int5 = OCTET_LENGTH * ; CALL"SUB34"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 1 (CHARACTER); its value is ", int1 DISPLAY"int2 should be 0 (NOT NULL); its value is ", int2 DISPLAY"int3 should be 1 (unnamed); its value is ", int3 DISPLAY"cname is '", cname "'" DISPLAY"int4 should be > 7; its value is ", int4 DISPLAY"int5 should be > 4; its value is ", int5 if (int1 NOT = 1 OR int2 NOT = 0 OR int3 NOT = 1) then MOVE 0 TO flag END-IF if (int4 NOT > 7 OR int5 NOT > 4) then DISPLAY"The correct values for int4 and int5 are
- " implementation-" DISPLAY"defined, but must be justified since they are
- " unexpectedly low." MOVE 0 TO flag END-IF
DISPLAY"GET DESCRIPTOR 'D12411' VALUE 2" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int4 = PRECISION, :int5 =
- " SCALE;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 2 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int4 = PRECISION, :int5 = SCALE; CALL"SUB35"USING SQLCODE SQLSTATE
int1 int2 int3 cname int4 int5 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 2 <= int1 <= 5; its value is ",
int1 DISPLAY"int2 should be 0 (NOT NULL); its value is ", int2 DISPLAY"int3 should be 1 (unnamed); its value is ", int3 DISPLAY"cname is '", cname "'" DISPLAY"int4 should be > 0; its value is ", int4 DISPLAY"int5 should be 0; its value is ", int5 if (int1 < 2 OR int1 > 5 OR int2 NOT = 0) then MOVE 0 TO flag END-IF if (int3 NOT = 1 OR int4 < 1 OR int5 NOT = 0) then MOVE 0 TO flag END-IF
*X3H2-95-103: Question marks are possibly nullable *17.9 GR.3.e.iii Unnamed columns
* EXEC SQL DELETE FROM CONCATBUF; CALL"SUB36"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO CONCATBUF VALUES ( * 'SELECT HIT_RATIO AS HR, FRAGMENTATION_PCT * ?' || * ' FROM CACHESTAT' * ); CALL"SUB37"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT ZZ INTO :longst FROM CONCATBUF; CALL"SUB38"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD
DISPLAY"longst=""", longst """"
DISPLAY"PREPARE S12414 FROM :longst;" * EXEC SQL PREPARE S12414 FROM :longst; CALL"SUB39"USING SQLCODE SQLSTATE longst MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DESCRIBE S12414 USING SQL DESCRIPTOR 'D12411';" * EXEC SQL DESCRIBE S12414 USING SQL DESCRIPTOR 'D12411' * ; CALL"SUB40"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 COMPUTE int2 = -1 MOVE"xxxxxxxxxxxxxxxxxxxx"TO cname DISPLAY"GET DESCRIPTOR 'D12411' VALUE 1" DISPLAY" :int1 = NULLABLE, :int2 = UNNAMED, :cname =
- " NAME;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 1 * :int1 = NULLABLE, :int2 = UNNAMED, :cname = NAME; CALL"SUB41"USING SQLCODE SQLSTATE
int1 int2 cname MOVE SQLCODE TO SQL-COD DISPLAY"int1 should be 0 (NOT NULL); its value is ", int1 DISPLAY"int2 should be 0 (named); its value is ", int2 DISPLAY"cname should be 'HR '; its value
- " is '", cname "'" if (int1 NOT = 0 OR int2 NOT = 0) then MOVE 0 TO flag END-IF if (cname NOT = "HR ") then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE int2 = -1 DISPLAY"GET DESCRIPTOR 'D12411' VALUE 2" DISPLAY" :int1 = NULLABLE, :int2 = UNNAMED;" * EXEC SQL GET DESCRIPTOR 'D12411' VALUE 2 * :int1 = NULLABLE, :int2 = UNNAMED; CALL"SUB42"USING SQLCODE SQLSTATE int1 int2 MOVE SQLCODE TO SQL-COD DISPLAY"int1 should be 1 (NULLABLE); its value is ", int1 DISPLAY"int2 should be 1 (unnamed); its value is ", int2 if (int1 NOT = 1 OR int2 NOT = 1) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB51"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0653 ******************** ******************** BEGIN TEST0654 ******************* MOVE 1 TO flag
DISPLAY"ALLOCATE DESCRIPTOR 'D12421' WITH MAX 9;" * EXEC SQL ALLOCATE DESCRIPTOR 'D12421' WITH MAX 9; CALL"SUB55"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK if (SQLSTATE = "07009") then DISPLAY"Received SQLSTATE 07009!" DISPLAY"This test must be rewritten by NIST (in the
- " event of" DISPLAY"a validation) to accomodate
- " implementation-defined" DISPLAY"limit on ." END-IF DISPLAY" "
DISPLAY"dstmt=""SELECT * FROM BANKTAB""" MOVE"SELECT * FROM BANKTAB
- " "TO dstmt
DISPLAY"PREPARE S12421 FROM :dstmt;" * EXEC SQL PREPARE S12421 FROM :dstmt; CALL"SUB56"USING SQLCODE SQLSTATE dstmt MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*Doctor results of describe to "match" host language variables *Implementation-dependent precisions, etc.
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 1" DISPLAY" LENGTH = 20;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 1 * LENGTH = 20; CALL"SUB58"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
* TYPE is already 2 DISPLAY"SET DESCRIPTOR 'D12421' VALUE 2" DISPLAY" PRECISION = 8, SCALE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 2 * PRECISION = 8, SCALE = 4; CALL"SUB59"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 3" DISPLAY" TYPE = 2, PRECISION = 8, SCALE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 3 * TYPE = 2, PRECISION = 8, SCALE = 4; CALL"SUB60"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 6" DISPLAY" TYPE = 2, PRECISION = 8, SCALE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 6 * TYPE = 2, PRECISION = 8, SCALE = 4; CALL"SUB61"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 7" DISPLAY" TYPE = 2, PRECISION = 8, SCALE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 7 * TYPE = 2, PRECISION = 8, SCALE = 4; CALL"SUB62"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 8" DISPLAY" TYPE = 2, PRECISION = 8, SCALE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 8 * TYPE = 2, PRECISION = 8, SCALE = 4; CALL"SUB63"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"DECLARE C12421 CURSOR FOR S12421;" * EXEC SQL DECLARE C12421 CURSOR FOR S12421 END-EXEC DISPLAY" "
DISPLAY"OPEN C12421;" * EXEC SQL OPEN C12421; CALL"SUB64"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"FETCH C12421 INTO SQL DESCRIPTOR 'D12421';" * EXEC SQL FETCH C12421 INTO SQL DESCRIPTOR 'D12421'; CALL"SUB65"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"GET DESCRIPTOR 'D12421' :int1 = COUNT;" * EXEC SQL GET DESCRIPTOR 'D12421' :int1 = COUNT; CALL"SUB66"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 MOVE"xxxxxxxxxxxxxxxxxxxx"TO cname DISPLAY"GET DESCRIPTOR 'D12421' VALUE 1" DISPLAY" :int1 = INDICATOR, :cname = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 1 * :int1 = INDICATOR, :cname = DATA; CALL"SUB67"USING SQLCODE SQLSTATE
int1 cname MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 DISPLAY"cname should be 'Bubba '; its value
- " is '", cname "'" if (int1 NOT = 0 OR cname NOT = "Bubba
- " ") then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE flt1 = -1.0 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 2" DISPLAY" :int1 = INDICATOR, :flt1 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 2 * :int1 = INDICATOR, :flt1 = DATA; CALL"SUB68"USING SQLCODE SQLSTATE int1 flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE flt1 TO FLT-1 DISPLAY"flt1 should be 524.07 +-.005; its value is ",
FLT-1 if (int1 NOT = 0 OR flt1 < 524.065 OR flt1 >
524.075) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE flt1 = -1.0 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 3" DISPLAY" :int1 = INDICATOR, :flt1 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 3 * :int1 = INDICATOR, :flt1 = DATA; CALL"SUB69"USING SQLCODE SQLSTATE int1 flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE flt1 TO FLT-1 DISPLAY"flt1 should be 2.42 +-.005; its value is ", FLT-1 if (int1 NOT = 0 OR flt1 < 2.415 OR flt1 > 2.425) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE int2 = -1 MOVE"xxxxxxxxxxxxxxxxxxxx"TO cname DISPLAY"GET DESCRIPTOR 'D12421' VALUE 4" DISPLAY" :int1 = INDICATOR, :bin9 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 4 * :int1 = INDICATOR, :bin9 = DATA; CALL"SUB70"USING SQLCODE SQLSTATE int1 bin9 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE bin9 TO BIN-1 DISPLAY"bin9 should be 13; its value is ", BIN-1 if (int1 NOT = 0 OR bin9 NOT = 13) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE int2 = -1 MOVE"xxxxxxxxxxxxxxxxxxxx"TO cname DISPLAY"GET DESCRIPTOR 'D12421' VALUE 5" DISPLAY" :int1 = INDICATOR, :bin2 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 5 * :int1 = INDICATOR, :bin2 = DATA; CALL"SUB71"USING SQLCODE SQLSTATE int1 bin2 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE bin2 TO BIN-1 DISPLAY"bin2 should be 1; its value is ", BIN-1 if (int1 NOT = 0 OR bin2 NOT = 1) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE flt1 = -1.0 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 6" DISPLAY" :int1 = INDICATOR, :flt1 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 6 * :int1 = INDICATOR, :flt1 = DATA; CALL"SUB72"USING SQLCODE SQLSTATE int1 flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE flt1 TO FLT-1 DISPLAY"flt1 should be 3.0 +-.05; its value is ", FLT-1 if (int1 NOT = 0 OR flt1 < 2.95 OR flt1 > 3.05) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE flt1 = -1.0 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 7" DISPLAY" :int1 = INDICATOR, :flt1 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 7 * :int1 = INDICATOR, :flt1 = DATA; CALL"SUB73"USING SQLCODE SQLSTATE int1 flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE flt1 TO FLT-1 DISPLAY"flt1 should be 3.1 +-.05; its value is ", FLT-1 if (int1 NOT = 0 OR flt1 < 3.05 OR flt1 > 3.15) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 COMPUTE flt1 = -1.0 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 8" DISPLAY" :int1 = INDICATOR, :flt1 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 8 * :int1 = INDICATOR, :flt1 = DATA; CALL"SUB74"USING SQLCODE SQLSTATE int1 flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 0; its value is ", int1 MOVE flt1 TO FLT-1 DISPLAY"flt1 should be -.256 +-.0005; its value is ",
FLT-1 if (int1 NOT = 0 OR flt1 < -.2565 OR flt1 >
-.2555) then MOVE 0 TO flag END-IF
*17.4 GR 4, no data (SQLSTATE 02000) if <item number> > COUNT
COMPUTE int1 = -1 DISPLAY"GET DESCRIPTOR 'D12421' VALUE 9" DISPLAY" :int1 = INDICATOR;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 9 * :int1 = INDICATOR; CALL"SUB75"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD DISPLAY"SQLSTATE should be 02000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODE NOT = 100 OR NORMSQ NOT = "02000") then MOVE 0 TO flag END-IF if (NORMSQ = "02000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF DISPLAY" "
*Implicit casting: 17.9 GR.7 *Substitute integer for real
DISPLAY"SET DESCRIPTOR 'D12421' VALUE 2" DISPLAY" TYPE = 4;" * EXEC SQL SET DESCRIPTOR 'D12421' VALUE 2 * TYPE = 4; CALL"SUB76"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"CLOSE C12421;" * EXEC SQL CLOSE C12421; CALL"SUB77"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"OPEN C12421;" * EXEC SQL OPEN C12421; CALL"SUB64"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"FETCH C12421 INTO SQL DESCRIPTOR 'D12421';" * EXEC SQL FETCH C12421 INTO SQL DESCRIPTOR 'D12421'; CALL"SUB79"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"GET DESCRIPTOR 'D12421' VALUE 2" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int6 = INDICATOR, :bin9 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 2 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int6 = INDICATOR, :bin9 = DATA; CALL"SUB80"USING SQLCODE SQLSTATE
int1 int2 int3 cname int6 bin9 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4 (INTEGER); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'BALANCE '; its value
- " is '", cname "'" MOVE bin9 TO BIN-1 DISPLAY"bin9 should be 524; its value is ", BIN-1 DISPLAY"int6 should be 0; its value is ", int6 if (int1 NOT = 4 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (bin9 NOT = 524 OR int6 NOT = 0) then MOVE 0 TO flag END-IF if (cname NOT = "BALANCE ") then MOVE 0 TO flag END-IF
*Test null
DISPLAY"CLOSE C12421;" * EXEC SQL CLOSE C12421; CALL"SUB81"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"UPDATE BANKTAB SET BALANCE = NULL;" * EXEC SQL UPDATE BANKTAB SET BALANCE = NULL; CALL"SUB82"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"OPEN C12421;" * EXEC SQL OPEN C12421; CALL"SUB64"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"FETCH C12421 INTO SQL DESCRIPTOR 'D12421';" * EXEC SQL FETCH C12421 INTO SQL DESCRIPTOR 'D12421'; CALL"SUB84"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"GET DESCRIPTOR 'D12421' VALUE 2" DISPLAY" :int1 = TYPE, :int2 = NULLABLE, :int3 =
- " UNNAMED," DISPLAY" :cname = NAME, :int6 = INDICATOR, :bin9 = DATA;" * EXEC SQL GET DESCRIPTOR 'D12421' VALUE 2 * :int1 = TYPE, :int2 = NULLABLE, :int3 = UNNAMED, * :cname = NAME, :int6 = INDICATOR, :bin9 = DATA; CALL"SUB85"USING SQLCODE SQLSTATE
int1 int2 int3 cname int6 bin9 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 4 (INTEGER); its value is ", int1 DISPLAY"int2 should be 1 (NULLABLE); its value is ", int2 DISPLAY"int3 should be 0 (named); its value is ", int3 DISPLAY"cname should be 'BALANCE '; its value
- " is '", cname "'" DISPLAY"int6 should be -1; its value is ", int6 if (int1 NOT = 4 OR int2 NOT = 1 OR int3 NOT = 0) then MOVE 0 TO flag END-IF if (int6 NOT = -1) then MOVE 0 TO flag END-IF if (cname NOT = "BALANCE ") then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB91"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0654 ******************** ******************** BEGIN TEST0655 ******************* MOVE 1 TO flag
DISPLAY"ALLOCATE DESCRIPTOR 'D12431' WITH MAX 8;" * EXEC SQL ALLOCATE DESCRIPTOR 'D12431' WITH MAX 8; CALL"SUB94"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK if (SQLSTATE = "07009") then DISPLAY"Received SQLSTATE 07009!" DISPLAY"This test must be rewritten by NIST (in the
- " event of" DISPLAY"a validation) to accomodate
- " implementation-defined" DISPLAY"limit on ." END-IF DISPLAY" "
*Now we're going to do implicit casting in the other direction
DISPLAY"SET DESCRIPTOR 'D12431' VALUE 1" DISPLAY" TYPE = 2, PRECISION = 3, SCALE = 0, INDICATOR =
- " -1;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 1 * TYPE = 2, PRECISION = 3, SCALE = 0, INDICATOR = -1 * ; CALL"SUB96"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 3785.2 TO flt1 DISPLAY"SET DESCRIPTOR 'D12431' VALUE 2" DISPLAY" DATA = :flt1, TYPE = 2," DISPLAY" PRECISION = 8, SCALE = 4," DISPLAY" INDICATOR = 0;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 2 * DATA = :flt1, TYPE = 2, * PRECISION = 8, SCALE = 4, * INDICATOR = 0; CALL"SUB97"USING SQLCODE SQLSTATE flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 1 TO int1 MOVE 4 TO int2 MOVE 0 TO int3 DISPLAY"int1 = 1" DISPLAY"int2 = 4" DISPLAY"int3 = 0" MOVE"7.67"TO c4 DISPLAY"SET DESCRIPTOR 'D12431' VALUE 3" DISPLAY" TYPE = :int1, LENGTH = :int2," DISPLAY" INDICATOR = :int3, DATA = :c4;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 3 * TYPE = :int1, LENGTH = :int2, * INDICATOR = :int3, DATA = :c4; CALL"SUB98"USING SQLCODE SQLSTATE int1 int2 int3 c4 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 4 TO int1 DISPLAY"int1 = 4" MOVE 5 TO int2 DISPLAY"SET DESCRIPTOR 'D12431' VALUE :int1" DISPLAY" TYPE = 2, PRECISION = 9, INDICATOR = 0, " DISPLAY" DATA = :int2;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE :int1 TYPE = 2, * PRECISION = 9, INDICATOR = 0, DATA = :int2; CALL"SUB99"USING SQLCODE SQLSTATE int1 int2 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 0 TO int2 DISPLAY"SET DESCRIPTOR 'D12431' VALUE 5" DISPLAY" TYPE = 2, PRECISION = 9, " DISPLAY" INDICATOR = 0, DATA = :int2;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 5 * TYPE = 2, PRECISION = 9, SCALE = 0, INDICATOR = 0, * DATA = :int2; CALL"SUB100"USING SQLCODE SQLSTATE int2 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE"010.95"TO c6 DISPLAY"SET DESCRIPTOR 'D12431' VALUE 6" DISPLAY" TYPE = 1, LENGTH = 6," DISPLAY" INDICATOR = 0, DATA = :c6" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 6 * TYPE = 1, LENGTH = 6, * INDICATOR = 0, DATA = :c6; CALL"SUB101"USING SQLCODE SQLSTATE c6 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*17.5 GR.5.a: character set fields are automatically set
MOVE 2 TO int1 DISPLAY"int1 = 2" MOVE"11"TO c2 DISPLAY"c2 = '", c2 "'" DISPLAY"SET DESCRIPTOR 'D12431' VALUE 7" DISPLAY" TYPE = 1, INDICATOR = 0, LENGTH = :int1, DATA =
- " :c2;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 7 * TYPE = 1, INDICATOR = 0, LENGTH = :int1, DATA = :c2 * ; CALL"SUB102"USING SQLCODE SQLSTATE int1 c2 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE .3 TO flt1 DISPLAY"SET DESCRIPTOR 'D12431' VALUE 8 TYPE = 2," DISPLAY" PRECISION = 8, SCALE = 4," DISPLAY" INDICATOR = 0, DATA = :flt1;" * EXEC SQL SET DESCRIPTOR 'D12431' VALUE 8 TYPE = 2, * PRECISION = 8, SCALE = 4, * INDICATOR = 0, DATA = :flt1; CALL"SUB103"USING SQLCODE SQLSTATE flt1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*Here goes nothing
--> --------------------
--> maximum size reached
--> --------------------
¤ 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.0.52Bemerkung:
Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können
¤
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.