通过出口 XFCREQ 和 XFCREQC 修改命令级参数结构中的字段

传递到文件控件的一些字段用作请求的输入,一些用作输出字段,一些用于输入和输出。 用户出口程序用于修改字段的方法取决于字段的使用情况。

输入和输出字段的列表

输入字段
以下始终是输入字段:
  • FILE
  • FROM
  • KEYLENGTH
  • REQID
  • SYSID
输出字段
以下始终是输出字段:
  • INTO
  • NUMREC
  • SET
用于输入和输出的字段

LENGTH 和 RIDFLD 是输入字段还是输出字段取决于请求,如 表 1中所示。 短划线 (-) 表示不能在请求上指定关键字。

表 1. LENGTH 和 RIDFLD 作为输入和输出字段
请求 LENGTH RIDFLD
READ 输出 请参阅注释 1
WRITE 输入 请参阅注释 2
REWRITE 输入
DELETE 请参阅注释 3
UNLOCK
STARTBR 输入
READNEXT 输出 输出
READPREV 输出 输出
ENDBR
RESETBR 输入
注:
  1. 通常,这是一个输入字段。 但是,如果指定了 UPDATE 并且该文件是使用扩展键搜索的 BDAM 文件,那么 RIDFLD 将用于输入和输出。
  2. 在 WRITE 请求上使用 RIDFLD 取决于文件类型。 对于 VSAM KSDS 或 RRDS 或固定格式的 BDAM 文件, RIDFLD 是输入字段。 对于所有其他文件类型,它仅用于输出,或者同时用于输入和输出,并且应视为输出字段。
  3. RIDFLD 是 DELETE 请求上没有以 READ UPDATE 开头的输入字段。 未在以 READ UPDATE 开头的请求上指定此参数。

修改输入字段

修改输入字段的正确方法是创建它的新副本,并更改命令级别参数列表中的地址以指向您的新数据。

注: 您绝不能通过改变命令级别参数列表所指向的数据来修改输入字段。 这样做将损坏属于应用程序的存储器,并在程序尝试复用该字段时导致失败。

修改输出字段

修改输入字段 中描述的方法不适用于修改输出字段。 (结果将返回到新区域而不是应用程序的区域,并且对于应用程序不可见。)

通过改变命令级别参数列表所指向的数据来修改输出字段。 在输出字段的情况下,您可以就地修改应用程序的数据,因为应用程序期望无论如何都要修改该字段。

修改用于输入和输出的字段

用于输入和输出的字段的示例是指定了 INTO 的 READ 请求上的 LENGTH。 您可以采用与输出字段相同的方式来处理此类字段,并且这些字段被视为相同。