Skip to main content

COBSQL: compilation error using ALPHABET clause in program also SET DIRECTIVES

  • February 15, 2013
  • 0 replies
  • 0 views

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.

Old KB# 4261