我有一个现有的MF COBOL 4.0程序,在ISAM文件中有多年的数据,但我需要在现有文件中添加一个新字段。该记录目前有1208个字符,我需要再添加10个字符。
如果我只是将额外的PIC X(10)字段放在我的字帖中,它会给我一个错误。
答案 0 :(得分:2)
您需要修改基础数据文件以匹配COBOL中的文件定义。一种方法是定义一行输出,就像你现在的数据行一样,但在它的末尾有一个额外的Pic x(10)。然后,您将逐行读取数据,并将其输出到新位置,并在其末尾添加10个额外空格。这样你的数据就会长10个字符,你可以返回并将额外的Pic x(10)添加到你的主程序中。它应该在那之后工作。
答案 1 :(得分:0)
通过更改副本,您只需更改程序中使用的数据的表示形式。你不应该重组数据源(即ISAM文件)吗?
答案 2 :(得分:0)
迟到的答案,但我认为你可能会感兴趣。
我已经在我们的Cobol系统上工作了20多年,我们已经多次遇到过这个问题。
对我们的索引文件结构的更改是我们认为的“主要版本”。这些需要特定的转换程序:
当然,这些转换需要系统“关闭”,因此它们被视为主要版本。
如果您的文件将来可能会添加字段,则可以在索引文件的末尾添加额外的FILLER,以便您处理要添加的新字段。我们倾向于添加50或100的填充。当然,如果您更改现有字段之一,甚至任何键的结构,这对您没有帮助。
答案 3 :(得分:0)
对于文件错误,您需要保留一个方便的列表。我建议从你在网上找到的列表开始,任何时候你得到一个你在5秒内无法弄清楚的错误,添加一个解决方案的详细解释,这样你下次发生时就会把它放在你的笔记中。这里有几个像
开头的体面列表在我的列表中,文件状态39为:
这来自个性化的说明:检查您在JCL中分配给ddname的文件。特别是长度分配。在您的情况下,您知道长度不匹配,因为您刚刚更改了程序。
有些实用程序可以重新格式化数据集,尤其是SYNCSORT。或者你当然可以自己写。