DB2 10.5 for Linux, UNIX, and Windows

COBOL 嵌入式 SQL 应用程序的包含文件

特定于主语言的 COBOL 包含文件的文件扩展名为 .cbl。如果您使用 IBM® COBOL 编译器的“System/390® 主数据类型支持”功能部件,那么应用程序的 DB2® 包含文件位于 $HOME/sqllib/include/cobol_i 目录中。

如果您使用提供的脚本文件来构建 DB2 样本程序,那么必须将脚本文件中指定的包含文件路径更改为 cobol_i 目录而不是 cobol_a 目录。

如果您使用 IBM COBOL 编译器的“System/390 主数据类型支持”功能部件,或者使用此编译器的先前版本,那么应用程序的 DB2 包含文件在以下目录中:

   $HOME/sqllib/include/cobol_a
为了找到包含文件,DB2 COBOL 预编译器将先搜索当前目录,然后搜索 DB2INCLUDE 环境变量所指定的目录。请考虑下列示例:
  • EXEC SQL INCLUDE payroll END-EXEC.

    如果未将 INCLUDE 语句中指定的文件引在引号中(如先前示例所示),那么预编译器将在它查找的每个目录中依次搜索 payroll.sqbpayroll.cpypayroll.cbl

  • EXEC SQL INCLUDE 'pay/payroll.cbl' END-EXEC.

    如果将文件名括在引号中(如上所示),那么不会对该文件名添加扩展名。

    如果引号中的文件名未包含绝对路径,那么将使用 DB2INCLUDE 的内容来搜索文件(此内容被添加到 INCLUDE 文件名中指定的任何路径之前)。例如,对于用于 AIX® 的 DB2 数据库系统而言,如果 DB2INCLUDE 设置为“/disk2:myfiles/cobol”,那么预编译器将依次搜索“./pay/payroll.cbl”、“/disk2/pay/payroll.cbl”和“./myfiles/cobol/pay/payroll.cbl”。该文件的实际路径将显示在预编译器消息中。在 Windows 平台上,请将以前显示的示例中的正斜杠替换为反斜杠 (\)。

注: DB2 命令行处理器将对 DB2INCLUDE 的设置进行高速缓存。要在发出任何 CLP 命令后更改 DB2INCLUDE 的设置,请输入 TERMINATE 命令,然后重新连接到数据库并进行预编译。
下面描述可以在应用程序中使用的包含文件:
SQLCA (sqlca.cbl)
此文件定义 SQL 通信区 (SQLCA) 结构。SQLCA 包含数据库管理器所使用的变量,这些变量为应用程序提供关于 SQL 语句和 API 调用的执行情况的错误信息。
SQLCA_92 (sqlca_92.cbl)
此文件包含 SQL 通信区 (SQLCA) 结构的 FIPS SQL92 入门级相容版本。在编写符合 FIPS SQL92 入门级标准的 DB2 应用程序时,应该包括此文件以代替 sqlca.cbl 文件。当 LANGLEVEL 预编译器选项设置为 SQL92E 时,DB2 预编译器将自动包括 sqlca_92.cbl 文件。
SQLCODES (sqlcodes.cbl)
此文件为 SQLCA 结构的 SQLCODE 字段定义常量。
SQLDA (sqlda.cbl)
此文件定义 SQL 描述符区域 (SQLDA) 结构。SQLDA 用于在应用程序与数据库管理器之间传递数据。
SQLEAU (sqleau.cbl)
此文件包含 DB2 安全性审计 API 所需的常量和结构定义。如果使用这些 API,那么需要在程序中包括此文件。此文件还包含审计跟踪记录中的字段的常量和关键字值定义。这些定义可供外部或供应商审计跟踪抽取程序使用。
SQLETSD (sqletsd.cbl)
此文件定义表空间描述符结构 SQLETSDESC,该结构将被传递到“创建数据库”API,即 sqlgcrea。
SQLE819A (sqle819a.cbl)
如果数据库的代码页是 819 (ISO Latin-1),那么此序列将根据主机 CCSID 500(EBCDIC 国际)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLE819B (sqle819b.cbl)
如果数据库的代码页是 819 (ISO Latin-1),那么此序列将根据主机 CCSID 037(EBCDIC 美国英语)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLE850A (sqle850a.cbl)
如果数据库的代码页是 850 (ASCII Latin-1),那么此序列将根据主机 CCSID 500(EBCDIC 国际)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLE850B (sqle850b.cbl)
如果数据库的代码页是 850 (ASCII Latin-1),那么此序列将根据主机 CCSID 037(EBCDIC 美国英语)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLE932A (sqle932a.cbl)
如果数据库的代码页是 932(ASCII 日语),那么此序列将根据主机 CCSID 5035(EBCDIC 日语)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLE932B (sqle932b.cbl)
如果数据库的代码页是 932(ASCII 日语),那么此序列将根据主机 CCSID 5026(EBCDIC 日语)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQL1252A (sql1252a.cbl)
如果数据库的代码页是 1252(Windows Latin-1),那么此序列将根据主机 CCSID 500(EBCDIC 国际)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQL1252B (sql1252b.cbl)
如果数据库的代码页是 1252(Windows Latin-1),那么此序列将根据主机 CCSID 037(EBCDIC 美国英语)二进制整理顺序对非 FOR BIT DATA 字符串进行排序。此文件由 CREATE DATABASE API 使用。
SQLSTATE (sqlstate.cbl)
此文件为 SQLCA 结构的 SQLSTATE 字段定义常量。
SQLUDF (sqludf.cbl)
此文件定义用于编写用户定义的函数 (UDF) 的常量和接口结构。
SQLUTBCQ (sqlutbcq.cbl)
此文件定义“表空间容器查询”数据结构 SQLB-TBSCONTQRY-DATA,此结构与 sqlgstsc、sqlgftcq 和 sqlgtcq 表空间容器查询 API 配合使用。
SQLUTBSQ (sqlutbsq.cbl)
此文件定义“表空间查询”数据结构 SQLB-TBSQRY-DATA,此结构与 sqlgstsq、sqlgftsq 和 sqlgtsq 表空间查询 API 配合使用。