如何在cobol中使用文件描述?

时间:2014-10-15 10:34:56

标签: cobol

我在一些教程中看到,记录只在文件描述(FD)中声明,在一些教程中,他们已经在工作存储部分声明了记录并使用它。两者之间有什么区别。 在某些程序中它就像这样

FD STUDENT
01 FS-EMP-REC.
   02 FS-EMP-ID            PIC X(07).
   02 FS-EMP-NAME          PIC X(20).
   02 FS-EMP-ACCT          PIC X(06).
01 WS-EMP-REC.
   02 WS-EMP-ID            PIC X(07).
   02 WS-EMP-NAME          PIC X(20).
   02 WS-EMP-ACCT          PIC X(06).

在某些教程中,它是(仅FD)

01 FS-EMP-REC.
   02 FS-EMP-ID            PIC X(07).
   02 FS-EMP-NAME          PIC X(20).
   02 FS-EMP-ACCT          PIC X(06).

有什么区别?

1 个答案:

答案 0 :(得分:1)

这可能是编码风格的问题。有些人总是使用READ ... INTO ...或者01下的FD移动到01中的WORKING-STORAGE01中的FILE SECTION通常只使用基本FILLER来定义输入记录的长度。

有时需要执行此操作,如果使用的特定COBOL限制了FD中数据的使用(在Enterprise COBOL中,您无法为FILE SECTION中的某些内容设置地址,DB2需要一个已知的地址,因此不能在FILE SECTION中。

人们倾向于认为它更安全"使用WORKING-STORAGE,但事实并非如此。人们还认为,当程序失败时,在WORKING-STORAGE中查找信息会更容易。

READ ... INTO ...需要额外传输数据,因此速度会更慢"但这只是极端情况下的问题。

你会在程序中看到这两个,就像你已经做过的那样,对于一个程序使用的原因和另一个程序使用的原因,并没有一个快速的答案。大多数情况下,它根本没有任何区别。

使用READ ... INTO ...FILE SECTION

中仍会显示记录

除非必要,否则我不会自己使用READ ... INTO ...,但很多人认为如果你不使用它,程序将无法正常使用: - )

请注意两种不同的方法,并使用您使用的编码方式。