DCLGEN实用程序在COBOL-DB2程序中如何有用?您将如何在表ORDERS中使用DCLGEN和主机变量进行示例查询?

一个COBOL-DB2程序可以查询/更新/插入/删除多个DB2表中的数据。但是,为了实现这一目标,我们必须满足两个主要条件。

  1. 向COBOL-DB2程序通知DB2表的结构。这包括所有列和这些列的数据类型。

  2. 每列各自的主机变量。程序逻辑中使用主机变量将数据从DB2移至程序,反之亦然。根据表的数据类型,每个表列都有一个主机变量。例如,对于数据类型为CHAR(2)的表列,应该有一个主机变量,其变量与PIC X(2)等效。

DCLGEN实用程序可帮助我们自动生成表结构和宿主变量。使用该实用程序,我们只需要提供DB2表名,它将返回表结构和PDS成员中的主机变量。我们可以使用INCLUDE语句在工作存储部分的COBOL-DB2程序中简单使用此PDS成员,如下所示-

EXEC SQL
   INCLUDE ORDERD
END-EXEC

ORDERD是使用DCLGEN实用程序生成的PDS成员。这将具有ORDERS表的结构以及所有列的主机变量。例如,数据类型为CHAR(30)和TIMESTAMP的ORDER_ID和ORDER_DATE列的主机变量分别为ORDER-ID PIC X(30)和ORDER-DATE PIC X(26)。如果我们要使用此主机变量将数据从DB2移动到程序,那么我们可以-

EXEC SQL
EXEC SQL
   SELECT ORDER_DATE
      INTO :ORDER-DATE,
      FROM ORDERS
      WHERE ORDER_ID = :ORDER-ID
END-EXEC
END-EXEC
猜你喜欢