* Standard COBOL (file "DML144.SCO") calling SQL * procedures in file "DML144.MCO".
**************************************************************** * * COMMENT SECTION * * DATE 1995/1/25 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. * * DML144.SCO * WRITTEN BY: David W. Flater * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * This routine tests several string-related features that were * hiding under VARCHAR. * * REFERENCES * FIPS PUB 127-2 14.1 Transitional SQL * ANSI SQL-1992 * ****************************************************************
COMPUTE int1 = -1 DISPLAY"SELECT CHAR_LENGTH (EMPNAME) INTO :int1" DISPLAY" FROM HU.STAFF WHERE GRADE = 10;" * EXEC SQL SELECT CHAR_LENGTH (EMPNAME) INTO :int1 * FROM HU.STAFF WHERE GRADE = 10; CALL"SUB5"USING SQLCODE SQLSTATE int1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"int1 should be 20; its value is ", int1 if (int1 NOT = 20) then MOVE 0 TO flag END-IF
COMPUTE int1 = -1 DISPLAY"SELECT CHARACTER_LENGTH ('HI' || 'THERE')" DISPLAY" INTO :int1 FROM HU.ECCO;" * EXEC SQL SELECT CHARACTER_LENGTH ('HI' || 'THERE') * INTO :int1 FROM HU.ECCO; CALL"SUB6"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
DISPLAY"INSERT INTO GRUB VALUES ('Hi ');" * EXEC SQL INSERT INTO GRUB VALUES ('Hi '); CALL"SUB7"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
COMPUTE int1 = -1 DISPLAY"SELECT CHARACTER_LENGTH (C1)" DISPLAY" INTO :int1 FROM GRUB;" * EXEC SQL SELECT CHARACTER_LENGTH (C1) * INTO :int1 FROM GRUB; CALL"SUB8"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 OCTET_LENGTH (C1)" DISPLAY" INTO :int1 FROM GRUB;" * EXEC SQL SELECT OCTET_LENGTH (C1) * INTO :int1 FROM GRUB; CALL"SUB9"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"UPDATE GRUB SET C1 = NULL;" * EXEC SQL UPDATE GRUB SET C1 = NULL; CALL"SUB10"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 50 TO indic1 DISPLAY"SELECT CHARACTER_LENGTH (C1)" DISPLAY" INTO :int1:indic1 FROM GRUB;" * EXEC SQL SELECT CHARACTER_LENGTH (C1) * INTO :int1:indic1 FROM GRUB; CALL"SUB11"USING SQLCODE SQLSTATE int1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
MOVE 50 TO indic1 DISPLAY"SELECT OCTET_LENGTH (C1)" DISPLAY" INTO :int1:indic1 FROM GRUB;" * EXEC SQL SELECT OCTET_LENGTH (C1) * INTO :int1:indic1 FROM GRUB; CALL"SUB12"USING SQLCODE SQLSTATE int1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB18"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0834 ******************** ******************** BEGIN TEST0835 ******************* MOVE 1 TO flag
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 4 FOR 10)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 4 FOR 10) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB23"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'on '; its value is '" ch1 "'" if (ch1 NOT = "on ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 4)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 4) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB24"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 01004; its value is ", SQLSTATE if (SQLCODE < 0 OR SQLSTATE NOT = "01004") then MOVE 0 TO flag END-IF DISPLAY"ch1 should be 'on '; its value is '" ch1 "'" if (ch1 NOT = "on ") then MOVE 0 TO flag END-IF
*6.7 GR.1.d
DISPLAY"SELECT SUBSTRING (CITY FROM 4 FOR -1)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 4 FOR -1) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB25"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 22011; its value is ", SQLSTATE if (SQLCODE NOT < 0 OR SQLSTATE NOT = "22011") then MOVE 0 TO flag END-IF
*6.7 GR.1.e.ii.1 (let S1 be the larger of S and 1)
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 0 FOR 10)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 0 FOR 10) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB26"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'Akron '; its value is '" ch1 "'" if (ch1 NOT = "Akron ") then MOVE 0 TO flag END-IF
*6.7 GR.1.e.ii
MOVE 4 TO int1 DISPLAY"int1 is ", int1 MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM :int1 FOR 100)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM :int1 FOR 100) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB27"USING SQLCODE SQLSTATE int1 ch1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be >= 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 01004; its value is ", SQLSTATE if (SQLCODE < 0 OR SQLSTATE NOT = "01004") then MOVE 0 TO flag END-IF DISPLAY"ch1 should be 'on '; its value is '" ch1 "'" if (ch1 NOT = "on ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 1 FOR 1)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 1 FOR 1) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB28"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'A '; its value is '" ch1 "'" if (ch1 NOT = "A ") then MOVE 0 TO flag END-IF
*6.7 GR.1.e.i
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 1 FOR 0)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 1 FOR 0) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB29"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be ' '; its value is '" ch1 "'" if (ch1 NOT = " ") then MOVE 0 TO flag END-IF
*6.7 GR.1.e.i
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (CITY FROM 12 FOR 1)" DISPLAY" INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT SUBSTRING (CITY FROM 12 FOR 1) * INTO :ch1 FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB30"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be ' '; its value is '" ch1 "'" if (ch1 NOT = " ") then MOVE 0 TO flag END-IF
DISPLAY"INSERT INTO MOREGRUB VALUES ('Pretzels', 1);" * EXEC SQL INSERT INTO MOREGRUB VALUES ('Pretzels', 1) * ; CALL"SUB31"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO MOREGRUB VALUES (NULL, 2);" * EXEC SQL INSERT INTO MOREGRUB VALUES (NULL, 2); CALL"SUB32"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO MOREGRUB VALUES ('Chips', 3);" * EXEC SQL INSERT INTO MOREGRUB VALUES ('Chips', 3); CALL"SUB33"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT S1 INTO :ch1" DISPLAY" FROM X4 WHERE ID = 1;" * EXEC SQL SELECT S1 INTO :ch1 * FROM X4 WHERE ID = 1; CALL"SUB34"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'els '; its value is '" ch1 "'" if (ch1 NOT = "els ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT S1 INTO :ch1" DISPLAY" FROM X4 WHERE ID = 3;" * EXEC SQL SELECT S1 INTO :ch1 * FROM X4 WHERE ID = 3; CALL"SUB35"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be ' '; its value is '" ch1 "'" if (ch1 NOT = " ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT S2 INTO :ch1" DISPLAY" FROM X4 WHERE ID = 1;" * EXEC SQL SELECT S2 INTO :ch1 * FROM X4 WHERE ID = 1; CALL"SUB36"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'retz '; its value is '" ch1 "'" if (ch1 NOT = "retz ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT S2 INTO :ch1" DISPLAY" FROM X4 WHERE ID = 3;" * EXEC SQL SELECT S2 INTO :ch1 * FROM X4 WHERE ID = 3; CALL"SUB37"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'hips '; its value is '" ch1 "'" if (ch1 NOT = "hips ") then MOVE 0 TO flag END-IF
*Column references
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (C1 FROM ID)" DISPLAY" INTO :ch1 FROM MOREGRUB" DISPLAY" WHERE C1 LIKE 'Ch%';" * EXEC SQL SELECT SUBSTRING (C1 FROM ID) * INTO :ch1 FROM MOREGRUB * WHERE C1 LIKE 'Ch%'; CALL"SUB38"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'ips '; its value is '" ch1 "'" if (ch1 NOT = "ips ") then MOVE 0 TO flag END-IF
MOVE"qqqqqqqqqq"TO ch1 DISPLAY"SELECT SUBSTRING (C1 FROM 1 FOR ID)" DISPLAY" INTO :ch1 FROM MOREGRUB" DISPLAY" WHERE C1 LIKE 'Ch%';" * EXEC SQL SELECT SUBSTRING (C1 FROM 1 FOR ID) * INTO :ch1 FROM MOREGRUB * WHERE C1 LIKE 'Ch%'; CALL"SUB39"USING SQLCODE SQLSTATE ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'Chi '; its value is '" ch1 "'" if (ch1 NOT = "Chi ") then MOVE 0 TO flag END-IF
MOVE"salsa "TO ch1 MOVE 8 TO int1 DISPLAY"int1 is ", int1 " and ch1 is ", ch1 DISPLAY"SELECT SUBSTRING (C1 || ' with ' || :ch1" DISPLAY" FROM 4 FOR :int1 + 1)" DISPLAY" INTO :ch1 FROM MOREGRUB" DISPLAY" WHERE C1 LIKE 'Ch%';" * EXEC SQL SELECT SUBSTRING (C1 || ' with ' || :ch1 * FROM 4 FOR :int1 + 1) * INTO :ch1 FROM MOREGRUB * WHERE C1 LIKE 'Ch%'; CALL"SUB40"USING SQLCODE SQLSTATE ch1 int1 ch1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"ch1 should be 'ps with s '; its value is '" ch1 "'" if (ch1 NOT = "ps with s ") then MOVE 0 TO flag END-IF
*6.7 GR.1.c (brutal null column references)
MOVE 19 TO indic1 DISPLAY"SELECT S1 INTO :ch1:indic1" DISPLAY" FROM X4 WHERE ID = 2;" * EXEC SQL SELECT S1 INTO :ch1:indic1 * FROM X4 WHERE ID = 2; CALL"SUB41"USING SQLCODE SQLSTATE ch1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
DISPLAY"DELETE FROM MOREGRUB;" * EXEC SQL DELETE FROM MOREGRUB; CALL"SUB42"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
DISPLAY"INSERT INTO MOREGRUB VALUES ('Tacos', NULL);" * EXEC SQL INSERT INTO MOREGRUB VALUES ('Tacos', NULL) * ; CALL"SUB43"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
*Future work: test the following cases in a view too
MOVE 19 TO indic1 DISPLAY"SELECT SUBSTRING (C1 FROM 1 FOR ID)" DISPLAY" INTO :ch1:indic1 FROM MOREGRUB;" * EXEC SQL SELECT SUBSTRING (C1 FROM 1 FOR ID) * INTO :ch1:indic1 FROM MOREGRUB; CALL"SUB44"USING SQLCODE SQLSTATE ch1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
MOVE 19 TO indic1 DISPLAY"SELECT SUBSTRING (C1 FROM ID FOR 1)" DISPLAY" INTO :ch1:indic1 FROM MOREGRUB;" * EXEC SQL SELECT SUBSTRING (C1 FROM ID FOR 1) * INTO :ch1:indic1 FROM MOREGRUB; CALL"SUB45"USING SQLCODE SQLSTATE ch1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE MOREGRUB SET C1 = NULL;" * EXEC SQL UPDATE MOREGRUB SET C1 = NULL; CALL"SUB46"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY" "
MOVE 19 TO indic1 DISPLAY"SELECT SUBSTRING (C1 FROM ID FOR ID)" DISPLAY" INTO :ch1:indic1 FROM MOREGRUB;" * EXEC SQL SELECT SUBSTRING (C1 FROM ID FOR ID) * INTO :ch1:indic1 FROM MOREGRUB; CALL"SUB47"USING SQLCODE SQLSTATE ch1 indic1 MOVE SQLCODE TO SQL-COD PERFORM CHCKOK DISPLAY"indic1 should be -1; its value is ", indic1 if (indic1 NOT = -1) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB53"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0835 ******************** ******************** BEGIN TEST0839 ******************* MOVE 1 TO flag
COMPUTE int1 = -1 DISPLAY"SELECT CHAR_LENGTH (SUBSTRING" DISPLAY" (CITY FROM 4 FOR 4)) INTO :int1" DISPLAY" FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT CHAR_LENGTH (SUBSTRING * (CITY FROM 4 FOR 4)) INTO :int1 * FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB54"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 CHARACTER_LENGTH (SUBSTRING" DISPLAY" (EMPNUM FROM 1)) INTO :int1" DISPLAY" FROM HU.STAFF WHERE EMPNAME = 'Ed';" * EXEC SQL SELECT CHARACTER_LENGTH (SUBSTRING * (EMPNUM FROM 1)) INTO :int1 * FROM HU.STAFF WHERE EMPNAME = 'Ed'; CALL"SUB55"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
* EXEC SQL COMMIT WORK; CALL"SUB59"USING SQLCODE SQLSTATE MOVE SQLCODE TO SQL-COD ******************** END TEST0839 ******************** **** 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 (SQLCODE NOT = 0 OR NORMSQ NOT = "00000") then MOVE 0 TO 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
MOVE 3 TO norm1 *subclass begins in position 3 of char array NORMSQ *valid subclass begins with 5-9, I-Z, end of ALPNUM table PERFORMVARYING norm2 FROM 14 BY 1 UNTIL 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
MOVE 4 TO norm1 *examining position 4 of char array NORMSQ *valid characters are 0-9, A-Z PERFORMVARYING norm2 FROM 1 BY 1 UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
MOVE 5 TO norm1 *valid characters are 0-9, A-Z *examining position 5 of char array NORMSQ PERFORMVARYING norm2 FROM 1 BY 1 UNTIL 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.
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet)
¤
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