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