与 OPNQRYF 一起使用时 OVRDBF 命令中 SHARE (* YES) 的意义

Significance of SHARE (* YES) in OVRDBF command when used with OPNQRYF

当我们在 CL 中执行 OPNQRYF 时,我们倾向于先执行带有 SHARE (* YES) 的 OVRDBF。

谁能告诉我 SHARE (* YES) 在这方面的意义。

OPNQRYF 在 SQL 之前的那一天是一个非常巧妙的功能。 (在 System/38 的最后一个版本中引入。)这个想法是 OPNQRYF 命令将用于将表连接在一起,对行进行分组,对它们进行排序,将列定义为映射字段。然后调用一个 RPG 程序,其中 RPG 程序中定义的输入文件与 OPNQRYF 命令中指定的 FILE 或 OPNID 具有相同的名称。

在OPNQRYF命令加入多个文件或定义映射字段的情况下,RPG程序中的文件实际上是一个空文件,其中包含与OPNQRYF命令中定义的所有字段匹配的记录格式。

通常,当 RPG 程序打开一个文件时,它会在库列表中搜索该文件。但在 OPNQRYF 的情况下,这将不起作用。 RPG 程序编译所针对的文件中没有记录。它仅用于定义来自 OPNQRYF 的输入的记录格式。然后使用 OVRDBF 命令将文件打开为 SHARED(*YES)。意思是,RPG 程序将使用文件的现有 OPNQRYF 打开(或 OPNID)。