CVDA 示例
以下是显示使用 CVDA 和 DFHVALUE 函数的所有 CICS 支持的语言的示例。
在每种情况下,代码都执行以下操作:
- 测试名为 PAYROLL 的文件是否已关闭。
- 如果是这样,请将文件的 UPDATE 和 DELETE 选项值分别更改为 UPDATABLE 和 NOTDELETABLE (以便可以更新和读取记录,但不能删除记录)。 请注意, UPDATE 选项是使用 DFHVALUE 函数设置的, DELETE 选项是通过指定值名称设置的。 这些方法是等效的; 其中任何一种方法都可以执行。
没有其他选项表明这些值将保持不变。 此信息也可以通过指定具有空值的选项来表达,如 SET 命令中所述。
- 返回到 CICS。
仅显示与每个程序的此部分相关的代码和定义。
COBOL 版本
WORKING-STORAGE SECTION.
01 FILE-STATUS-INFO.
02 UOPST PIC S9(8) COMP.
02 UUPD PIC S9(8) COMP.
02 INFILE PIC X(8).
. . .
CICS-REQUESTS.
MOVE 'PAYROLL ' TO INFILE.
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(UOPST) END-EXEC.
IF UOPST = DFHVALUE(CLOSED)
MOVE DFHVALUE(UPDATABLE) TO UUPD
EXEC CICS SET FILE(INFILE)
UPDATE(UUPD)
NOTDELETABLE END-EXEC.
EXEC CICS RETURN.
C 版本
#define INFILE "PAYROLL "
main()
{
long int uopst, /* OPENSTATUS value */
long int uupd; /* UPDATE value */
. . .
EXEC CICS ADDRESS EIB(dfheiptr);
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(uopst);
if( uopst == DFHVALUE(CLOSED) )
{ uupd = DFHVALUE(UPDATABLE);
EXEC CICS SET FILE(INFILE)
UPDATE(uupd)
NOTDELETABLE; }
EXEC CICS RETURN;
}
PL/I 版本
DCL (UOPST,UUPD) FIXED BIN(31), /*OPEN,UPD STATUS*/
INFILE CHAR(8); /*FILE NAME */
. . .
INFILE='PAYROLL ';
EXEC CICS INQUIRE FILE(INFILE)
OPENSTATUS(UOPST):
IF UOPST = DFHVALUE(CLOSED) THEN DO;
UUPD = DFHVALUE(UPDATABLE);
EXEC CICS SET FILE(INFILE)
UPDATE(UUPD)
NOTDELETABLE; END;
EXEC CICS RETURN;
汇编语言版本
DFHEISTG
UOPST DS F *OPEN STATUS
UUPD DS F *UPDATE STATUS
INFILE DS CL8 *FILE NAME
. . .
MVC INFILE,=CL8'PAYROLL '
EXEC CICS INQUIRE FILE(INFILE) X
OPENSTATUS(UOPST)
CLC UOPST,DFHVALUE(CLOSED)
BNE OPENLAB
MVC UUPD,DFHVALUE(UPDATABLE)
EXEC CICS SET FILE(INFILE) X
UPDATE(UUPD) X
NOTDELETABLE
OPENLAB EXEC CICS RETURN