Problem:
Release 4.0:
Getting compilation error when using alphabet-clause in a program which uses SET DIRECTIVES with ORACLE
* Micro Focus Net Express V4.0 revision 038 Compiler
* Copyright (C) 1984-2006 Micro Focus (IP) Limited. URN AXCGG/AA0/00000
* Micro Focus COBSQL Integrated Preprocessor
* Net Express V4.0 Copyright (C)1984-2006 Micro Focus (IP) Limited.
* URN AAAPA/ZZ0/00065
* CSQL-I-018: Invoking ORACLE8 Precompiler/Translator
* CSQL-E-036: Unable to open the precompiler file: "C:\\uphv90.cs9"
* CSQL-E-023: File Status 3/ 5
Rebuild complete with errors
------------------------------
When removing the ALPHABET clause the programm compiles without errors
Resolution:
This was a problem with procob, ORACLE's Pre-Compiler for COBOL. The Oracle Precompiler does not recognise the end of the SPECIAL-NAMES paragraph when there is an ALPHABET-clause in it.
Solution: Set Decimal Point is Comma in the last line in special-names.
Sample:
$SET DIRECTIVES "SQL-DIRECTIVEN.DIR";
IDENTIFICATION DIVISION. I-9809
PROGRAM-ID. uphv90.
AUTHOR. SOMEONE. V-1103
DATE-COMPILED. DATUM. ucob
ENVIRONMENT DIVISION. I-9809
CONFIGURATION SECTION. I-9809
SOURCE-COMPUTER. UNIVAC-1100. I-9809
OBJECT-COMPUTER. UNIVAC-1100 I-9809
MEMORY SIZE 4 MODULES I-9809
* sequence is alpha. *T177*
SEQUENCE IS ALF.
SPECIAL-NAMES. I-9809
* printer is printer
alphabet ALF is 1 thru 65
'A' ALSO 'a' 'ä' ALSO 'ä' 'B' ALSO 'b' 'C' ALSO 'c' *T177*
'D' ALSO 'd' 'E' ALSO 'e' 'F' ALSO 'f' 'G' ALSO 'g' *T177*
'H' ALSO 'h' 'I' ALSO 'i' 'J' ALSO 'j' 'K' ALSO 'k' *T177*
'L' ALSO 'l' 'M' ALSO 'm' 'N' ALSO 'n' 'O' ALSO 'o' *T177*
'ö' ALSO 'ö' 'P' ALSO 'p' 'Q' ALSO 'q' 'R' ALSO 'r' *T177*
'S' ALSO 's' 'ß' 'T' ALSO 't' 'U' ALSO 'u' *T177*
'ü' ALSO 'ü' 'V' ALSO 'v' 'W' ALSO 'w' 'X' ALSO 'x' *T177*
'y' ALSO 'Y' 'z' ALSO 'Z'
DECIMAL-POINT IS COMMA. I-9809
is ok.
But
$SET DIRECTIVES "SQL-DIRECTIVEN.DIR";
IDENTIFICATION DIVISION. I-9809
PROGRAM-ID. uphv90.
AUTHOR. SOMEONE. V-1103
DATE-COMPILED. DATUM. ucob
ENVIRONMENT DIVISION. I-9809
CONFIGURATION SECTION. I-9809
SOURCE-COMPUTER. UNIVAC-1100. I-9809
OBJECT-COMPUTER. UNIVAC-1100 I-9809
MEMORY SIZE 4 MODULES I-9809
* sequence is alpha. *T177*
SEQUENCE IS ALF.
SPECIAL-NAMES. I-9809
* printer is printer
DECIMAL-POINT IS COMMA I-9809
alphabet ALF is 1 thru 65
'A' ALSO 'a' 'ä' ALSO 'ä' 'B' ALSO 'b' 'C' ALSO 'c' *T177*
'D' ALSO 'd' 'E' ALSO 'e' 'F' ALSO 'f' 'G' ALSO 'g' *T177*
'H' ALSO 'h' 'I' ALSO 'i' 'J' ALSO 'j' 'K' ALSO 'k' *T177*
'L' ALSO 'l' 'M' ALSO 'm' 'N' ALSO 'n' 'O' ALSO 'o' *T177*
'ö' ALSO 'ö' 'P' ALSO 'p' 'Q' ALSO 'q' 'R' ALSO 'r' *T177*
'S' ALSO 's' 'ß' 'T' ALSO 't' 'U' ALSO 'u' *T177*
'ü' ALSO 'ü' 'V' ALSO 'v' 'W' ALSO 'w' 'X' ALSO 'x' *T177*
'y' ALSO 'Y' 'z' ALSO 'Z'.
gives the error-message that file "SQL-DIRECTIVEN.DIR" is not available when compiling with Net Express 4.0.
When splitting the procob-pass from the compiler-pass the real error message was that procob was looking for DECIMAL-POINT is COMMA did not find it and said that end of file was reached.



