为什么组织条款不起作用?

时间:2014-04-25 19:56:46

标签: cobol

我第一次使用VSAM文件,并且在VSAM定义的ORGANIZATION部分遇到了很多麻烦。

我认为关键是Cobol用来搜索文件的关键。

问题:为什么组织条款不起作用?

代码在这里:

 SELECT SW24VF01   ASSIGN TO UT-S-INPUT2                 
                   ORGANIZATION IS INDEXED               
                   ACCESS IS RANDOM                      
                   RECORD KEY IS MY-PROV-KEY-24          
                   FILE STATUS IS SW24VF01-STAT.    

 SELECT SS45VF90   ASSIGN TO UT-S-INPUT3                 
                   ORGANIZATION IS INDEXED               
                   ACCESS IS RANDOM                      
                   RECORD KEY IS MY-PROV-KEY-45          
                   FILE STATUS IS SS45VF90-STAT.

 FD  SW24VF01.                      
 01  MY-PROV-KEY-24 PIC X(09).      
 01  FILLER         PIC X(1991).    

 FD  SS45VF90.                      
 01  MY-PROV-KEY-45 PIC X(09).      
 01  FILLER         PIC X(1991).  

错误:

 32  IGYGR1208-E   The "ORGANIZATION" clause for file "SW24VF01" specified an
                   organization specified in the assignment-name.  An organiz

 37  IGYGR1208-E   The "ORGANIZATION" clause for file "SS45VF90" specified an
                   organization specified in the assignment-name.  An organiz         

1 个答案:

答案 0 :(得分:2)

您需要获取正在使用的Enterprise COBOL版本的Enterprise COBOL语言参考的副本。这很可能是V3.4,V4.1或V4.2,可能是V5.1(去年6月发布)。

对于这个特定的问题,任何版本都可以,但是继续前进,知道在哪里可以找到特定于您正在使用的COBOL版本的版本。也可以获得编程指南。

互联网搜索IBM Enterprise COBOL for z/OS library会让您进入一个可以轻松找到正确位置的网页。

在语言参考中找到ASSIGN子句。

Format: assignment-name for QSAM files 
    label-S-name  
Format: > assignment-name for VSAM sequential file 
    label-AS-name 
Format: > assignment-name for line-sequential, VSAM indexed, or VSAM relative
file 
    label-name

label- Documents (for the programmer) the device and device class to
which a file is assigned. It must end in a hyphen; the specified value
is not otherwise checked. It has no effect on the execution of the
program. If specified, it must end with a hyphen.

S- For QSAM files, the S- (organization) field can be omitted. AS- For
VSAM sequential files, the AS- (organization) field must be specified.
**For VSAM indexed and relative files, the organization field must be omitted.**

name

A required field that specifies the external name for this file.

因此,VSAM KSDS或RRDS要求ASSIGN包含非常有限的信息,即标签,该语法经过语法检查但未被使用。

过去,ASSIGN中的信息会有更多含义。不同操作系统上的不同COBOL可能有不同的要求。对于Enterprise COBOL for z / OS,ASSIGN非常简单。

在编程指南中,您将找到有关处理VSAM文件的章节。它将帮助您完成此任务。

从该章节,KSDS的示例SELECT语句:

SELECT R-FILE
    ASSIGN TO RELATIVE-FILE
    ORGANIZATION IS RELATIVE
    ACCESS IS RANDOM
    RELATIVE KEY IS RFILE-RELATIVE-KEY
    FILE STATUS IS FSTAT-CODE VSAM-CODE.

您应该注意FILE STATUS的第二个数据名称。这是简单文件状态的扩展,仅适用于VSAM文件。当您具有非零的文件状态时,它将包含诊断信息。我建议你编码,它会让你的事情变得更容易。