通过出口 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 — 输入 注:- 通常,这是一个输入字段。 但是,如果指定了 UPDATE 并且该文件是使用扩展键搜索的 BDAM 文件,那么 RIDFLD 将用于输入和输出。
- 在 WRITE 请求上使用 RIDFLD 取决于文件类型。 对于 VSAM KSDS 或 RRDS 或固定格式的 BDAM 文件, RIDFLD 是输入字段。 对于所有其他文件类型,它仅用于输出,或者同时用于输入和输出,并且应视为输出字段。
- RIDFLD 是 DELETE 请求上没有以 READ UPDATE 开头的输入字段。 未在以 READ UPDATE 开头的请求上指定此参数。
修改输入字段
修改输入字段的正确方法是创建它的新副本,并更改命令级别参数列表中的地址以指向您的新数据。
注: 您绝不能通过改变命令级别参数列表所指向的数据来修改输入字段。 这样做将损坏属于应用程序的存储器,并在程序尝试复用该字段时导致失败。
修改输出字段
修改输入字段 中描述的方法不适用于修改输出字段。 (结果将返回到新区域而不是应用程序的区域,并且对于应用程序不可见。)
通过改变命令级别参数列表所指向的数据来修改输出字段。 在输出字段的情况下,您可以就地修改应用程序的数据,因为应用程序期望无论如何都要修改该字段。
修改用于输入和输出的字段
用于输入和输出的字段的示例是指定了 INTO 的 READ 请求上的 LENGTH。 您可以采用与输出字段相同的方式来处理此类字段,并且这些字段被视为相同。