【问题标题】:How to use file descriptions in cobol?如何在 cobol 中使用文件描述?
【发布时间】:2014-10-15 10:34:55
【问题描述】:

我在一些教程中看到记录只在文件描述(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).

有什么区别?

【问题讨论】:

    标签: cobol


    【解决方案1】:

    这可能是编码风格的问题。有些人总是使用READ ... INTO ... 或将FD 下的01 移动到WORKING-STORAGE 中的01。通常,FILE SECTION 中的 01 将仅使用基本 FILLER 进行定义,以描述输入记录的长度。

    如果使用的特定 COBOL 限制了 FD 中数据的使用(在 Enterprise COBOL 中,您不能为 FILE SECTION 中的某些内容设置地址,并且 DB2 需要一个已知的地址,因此不能在FILE SECTION 中,例如)。

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

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

    您会在程序中看到这两种情况,正如您已经做过的那样,对于为什么一个程序使用 on,而另一个程序使用另一个,并没有硬性的答案。大多数情况下,它根本没有任何区别。

    对于READ ... INTO ...,该记录仍将在FILE SECTION 中可用。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多