* Standard COBOL (file "XTS715.SCO") calling SQL * procedures in file "XTS715.MCO".
*Copyright 1995 National Computing Centre Limited *and Computer Logic R&D S.A *on behalf of the CTS5 SQL2 Project. *All rights reserved. *The CTS5 SQL2 Project is sponsored by the European Community. * *The National Computing Centre Limited and Computer Logic R&D *have given permission to NIST to distribute this program *over the World Wide Web in order to promote SQL standards. *DISCLAIMER: *This program was reviewed by employees of NIST for *conformance to the SQL standards. *NIST assumes no responsibility for any party's use of *this program.
**************************************************************** * * COMMENT SECTION * * SQL VALIDATION TEST SUITE V6.0 * * XTS715.SCO * WRITTEN BY: Manolis Megaloikonomou * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * REVIEW BY: Nickos Backalidis * * Schema definition - explicit name and auth-id. * * Programs run under identifier CTS4 * * REFERENCES * 11.1 -- <Schema definition> * 11.1 GR.3 * 12.5 -- <SQL procedure statement> * 12.5 LR.2a -- Entry SQL restriction * An <SQL procedure statement> shall not be an * <SQL schema definition statement> (Raised) * 21.2.4 -- SCHEMATA view. * F#17 -- Multiple schemas per user. * F#2 -- Basic information schema. * F#31 -- Schema definition statement. * * DATE LAST ALTERED 12/12/95 CTS5 Hand-over Test * * Cleanups and fixes by V. Kogakis 01/12/95 * * QA Status: QA Check * *Revised 1/23/96 by DWF * Added info on workarounds * Wrong data expected in information schema, fixed * Removed status checks after cursor definitions * Fixed SDL transactions * Fixed string truncation ****************************************************************
DISPLAY"This test attempts to create schemas with
- " different" DISPLAY"authorizations. Because authorizations are
- " implementation-" DISPLAY"defined, this test may need modification. The
- " following" DISPLAY"actions may help to pass the test:" DISPLAY" -- Change the initial authid to an authid with
- " DBA privileges" DISPLAY" -- Insert code to work around
- " implementation-defined" DISPLAY" authentication mechanisms (e.g. to reconnect
- " with a" DISPLAY" different authid)."
*Check that the schema exists in Information schema MOVE0TO aa DISPLAY"SELECT COUNT(*) INTO :aa" DISPLAY"FROM INFORMATION_SCHEMA.SCHEMATA " DISPLAY"WHERE SCHEMA_NAME = 'T7015APC';" * EXEC SQL SELECT COUNT(*) INTO :aa * FROM INFORMATION_SCHEMA.SCHEMATA * WHERE SCHEMA_NAME = 'T7015APC'; CALL"SUB5"USINGSQLCODE SQLSTATE aa MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 1; its value is ", aa if ( aa NOT = 1 ) then MOVE0TO flag END-IF DISPLAY" "
*Then insert values into the table T7015aPC.TESTAB2931 DISPLAY"INSERT INTO T7015aPC.TESTAB2931" DISPLAY"VALUES(4,'DD');" * EXEC SQL INSERT INTO T7015aPC.TESTAB2931 * VALUES(4,'DD'); CALL"SUB6"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015aPC.TESTAB2931" DISPLAY"VALUES(3,'CC');" * EXEC SQL INSERT INTO T7015aPC.TESTAB2931 * VALUES(3,'CC'); CALL"SUB7"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015aPC.TESTAB2931" DISPLAY"VALUES(2,'BB');" * EXEC SQL INSERT INTO T7015aPC.TESTAB2931 * VALUES(2,'BB'); CALL"SUB8"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015aPC.TESTAB2931" DISPLAY"VALUES(5,'EE');" * EXEC SQL INSERT INTO T7015aPC.TESTAB2931 * VALUES(5,'EE'); CALL"SUB9"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015aPC.TESTAB2931" DISPLAY"VALUES(1,'AA');" * EXEC SQL INSERT INTO T7015aPC.TESTAB2931 * VALUES(1,'AA'); CALL"SUB10"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" "
*Using a cursor declaration, check for correct values *in table T7015aPC.TESTAB2931 DISPLAY"DECLARE ALPHA CURSOR" DISPLAY"FOR SELECT * FROM T7015aPC.TESTAB2931 ORDER BY
- " TNUM;" * EXEC SQL DECLARE ALPHA CURSOR * FOR SELECT * FROM T7015aPC.TESTAB2931 * ORDER BY TNUM END-EXEC
*init host vars and check 1st value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH ALPHA INTO :aa, :bb;" * EXEC SQL FETCH ALPHA INTO :aa, :bb; CALL"SUB13"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 1; its value is ", aa DISPLAY"bb should be AA; its value is ", bb if ( aa NOT = 1OR bb NOT = "AA") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 2nd value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH ALPHA INTO :aa, :bb;" * EXEC SQL FETCH ALPHA INTO :aa, :bb; CALL"SUB14"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 2; its value is ", aa DISPLAY"bb should be BB; its value is ", bb if ( aa NOT = 2OR bb NOT = "BB") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 3rd value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH ALPHA INTO :aa, :bb;" * EXEC SQL FETCH ALPHA INTO :aa, :bb; CALL"SUB15"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 3; its value is ", aa DISPLAY"bb should be CC; its value is ", bb if ( aa NOT = 3OR bb NOT = "CC") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 4th value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH ALPHA INTO :aa, :bb;" * EXEC SQL FETCH ALPHA INTO :aa, :bb; CALL"SUB16"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 4; its value is ", aa DISPLAY"bb should be DD; its value is ", bb if ( aa NOT = 4OR bb NOT = "DD") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 5th value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH ALPHA INTO :aa, :bb;" * EXEC SQL FETCH ALPHA INTO :aa, :bb; CALL"SUB17"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 5; its value is ", aa DISPLAY"bb should be EE; its value is ", bb if ( aa NOT = 5OR bb NOT = "EE") then MOVE0TO flag END-IF DISPLAY" "
*Insert values into table T7015bPC.TESTBA2931 DISPLAY"INSERT INTO T7015bPC.TESTBA2931" DISPLAY"VALUES(4,'DD');" * EXEC SQL INSERT INTO T7015bPC.TESTBA2931 * VALUES(4,'DD'); CALL"SUB22"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015bPC.TESTBA2931" DISPLAY"VALUES(3,'CC');" * EXEC SQL INSERT INTO T7015bPC.TESTBA2931 * VALUES(3,'CC'); CALL"SUB23"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015bPC.TESTBA2931" DISPLAY"VALUES(2,'BB');" * EXEC SQL INSERT INTO T7015bPC.TESTBA2931 * VALUES(2,'BB'); CALL"SUB24"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015bPC.TESTBA2931" DISPLAY"VALUES(5,'EE');" * EXEC SQL INSERT INTO T7015bPC.TESTBA2931 * VALUES(5,'EE'); CALL"SUB25"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" " DISPLAY"INSERT INTO T7015bPC.TESTBA2931" DISPLAY"VALUES(1,'AA');" * EXEC SQL INSERT INTO T7015bPC.TESTBA2931 * VALUES(1,'AA'); CALL"SUB26"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" "
*Check existance of table and its contents MOVE0TO aa DISPLAY"SELECT COUNT(*) INTO :aa FROM
- " T7015bPC.TESTBA2931;" * EXEC SQL SELECT COUNT(*) INTO :aa FROM T7015bPC.TESTBA2931 * ; CALL"SUB27"USINGSQLCODE SQLSTATE aa MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 5; its value is ", aa if (aa NOT = 5) then MOVE0TO flag END-IF DISPLAY" "
*Declare cursor to fetch table contents and check them DISPLAY"DECLARE BETA CURSOR" DISPLAY"FOR SELECT * FROM T7015bPC.TESTBA2931 ORDER BY
- " TNUM;" * EXEC SQL DECLARE BETA CURSOR * FOR SELECT * FROM T7015bPC.TESTBA2931 ORDER BY TNUM * END-EXEC
*init host vars and check 1st value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH BETA INTO :aa, :bb;" * EXEC SQL FETCH BETA INTO :aa, :bb; CALL"SUB29"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 1; its value is ", aa DISPLAY"bb should be AA; its value is ", bb if ( aa NOT = 1OR bb NOT = "AA") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 2nd value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH BETA INTO :aa, :bb;" * EXEC SQL FETCH BETA INTO :aa, :bb; CALL"SUB30"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 2; its value is ", aa DISPLAY"bb should be BB; its value is ", bb if ( aa NOT = 2OR bb NOT = "BB") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 3rd value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH BETA INTO :aa, :bb;" * EXEC SQL FETCH BETA INTO :aa, :bb; CALL"SUB31"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 3; its value is ", aa DISPLAY"bb should be CC; its value is ", bb if ( aa NOT = 3OR bb NOT = "CC") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 4th value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH BETA INTO :aa, :bb;" * EXEC SQL FETCH BETA INTO :aa, :bb; CALL"SUB32"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 4; its value is ", aa DISPLAY"bb should be DD; its value is ", bb if ( aa NOT = 4OR bb NOT = "DD") then MOVE0TO flag END-IF DISPLAY" "
*init host vars and check 5th value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"FETCH BETA INTO :aa, :bb;" * EXEC SQL FETCH BETA INTO :aa, :bb; CALL"SUB33"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 5; its value is ", aa DISPLAY"bb should be EE; its value is ", bb if ( aa NOT = 5OR bb NOT = "EE") then MOVE0TO flag END-IF DISPLAY" "
*Check for a correct UPDATE in table T7015bPC.TESTBA2931 DISPLAY"UPDATE T7015bPC.TESTBA2931" DISPLAY"SET TCHAR = 'XX'" DISPLAY"WHERE TNUM = 1;" * EXEC SQL UPDATE T7015bPC.TESTBA2931 * SET TCHAR = 'XX' * WHERE TNUM = 1; CALL"SUB35"USINGSQLCODE SQLSTATE MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY" "
*init host vars and check again 1st value COMPUTE aa = -1 MOVE"xxx"TO bb DISPLAY"SELECT TNUM, TCHAR INTO :aa, :bb" DISPLAY"FROM T7015bPC.TESTBA2931" DISPLAY"WHERE TNUM = 1;" * EXEC SQL SELECT TNUM, TCHAR INTO :aa, :bb * FROM T7015bPC.TESTBA2931 * WHERE TNUM = 1; CALL"SUB36"USINGSQLCODE SQLSTATE aa bb MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"aa should be 1; its value is ", aa DISPLAY"bb should be XX; its value is ", bb if ( aa NOT = 1OR bb NOT = "XX") then MOVE0TO flag END-IF DISPLAY" "
******************** END TEST7015 ********************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
*Test SQLCODE and SQLSTATE for normal completion.
CHCKOK. DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 00000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODENOT = 0OR NORMSQ NOT = "00000") then MOVE0TO flag END-IF if (NORMSQ = "00000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF
.
NOSUBCLASS.
*This routine replaces valid implementation-defined *subclasses with 000. This replacement equates valid *implementation-defined subclasses with the 000 value *expected by the test case; otherwise the test will fail. *After calling NOSUBCLASS, NORMSQ will be tested * SQLSTATE will be printed.
MOVE SQLSTATE TO NORMSQ
MOVE3TO norm1 *subclass begins in position 3 of char array NORMSQ *valid subclass begins with 5-9, I-Z, end of ALPNUM table PERFORMVARYING norm2 FROM14BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*Quit if NORMSQ is unchanged. Subclass is not impl.-def. *Changed NORMSQ means implementation-defined subclass, *so proceed to zero it out, if valid (0-9,A-Z) if (NORMSQ = SQLSTATE) then GOTO EXIT-NOSUBCLASS END-IF
MOVE4TO norm1 *examining position 4 of char array NORMSQ *valid characters are 0-9, A-Z PERFORMVARYING norm2 FROM1BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
MOVE5TO norm1 *valid characters are 0-9, A-Z *examining position 5 of char array NORMSQ PERFORMVARYING norm2 FROM1BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*implementation-defined subclasses are allowed for warnings *(class = 01). These equate to successful completion *SQLSTATE values of 00000. *Reference SQL-92 4.28 SQL-transactions, paragraph 2
if (NORMSQX(1) = "0"AND NORMSQX(2) = "1") then MOVE"0"TO NORMSQX(2) END-IF
.
EXIT-NOSUBCLASS. EXIT.
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-09-27)
¤
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.
Angebot
Hier finden Sie eine Liste der Produkte des Unternehmens