我第一次使用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
答案 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文件。当您具有非零的文件状态时,它将包含诊断信息。我建议你编码,它会让你的事情变得更容易。