COBOL-DB2程序中DCLGEN和宿主变量的用途和用法是什么?
COBOL-DB2程序可以查询/更新/插入/删除多个DB2表中的数据。但是,为了实现这一点,我们必须满足两个主要条件。
将DB2表的结构通知COBOL-DB2程序。这包括所有列和这些列的数据类型。
每个列的相应宿主变量。宿主变量用于程序逻辑中,将数据从DB2移动到程序,反之亦然。每个表列都有一个基于其数据类型的宿主变量。例如,对于数据类型为CHAR(2)的表列,应该有一个与COBOL数据类型PIC X(2)等效的宿主变量。
DCLGEN实用程序帮助我们自动生成表结构和宿主变量。使用此实用程序,我们只需要提供DB2表名,它将返回表结构和PDS成员中的宿主变量。我们可以在COBOL-DB2程序的工作存储区部分使用INCLUDE语句简单地使用此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
广告