一个COBOL-DB2程序可以查询/更新/插入/删除多个DB2表中的数据。但是,为了实现这一目标,我们必须满足两个主要条件。
向COBOL-DB2程序通知DB2表的结构。这包括所有列和这些列的数据类型。
每列各自的主机变量。程序逻辑中使用主机变量将数据从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