处理SQL语句,为程序做准备

准备运行SQL应用程序的第一步是处理程序中的SQL语句。 如需处理您的留言,请发送邮件至 Db2 coprocessorDb2 precompiler。 在此步骤中,SQL语句被替换为对 Db2 语言接口模块的调用,并创建一个DBRM。

准备工作

请确保您的应用程序开发编程语言符合 Db2 12 程序目录中“编程语言”部分列出的最低要求。 请参阅 Db2 12的程序目录

关于本任务

由于大多数编译器无法识别 SQL 语句,因此您可以使用 Db2 coprocessorDb2 precompiler 来避免编译器错误。

您可以使用 Db2 coprocessor 作为主机语言。 当您使用 Db2 coprocessor 时,编译器(而非 Db2 precompiler )会扫描程序并返回修改后的源代码。 Db2 coprocessor 还生产DBRM。

提示: 更改开始 Db2 coprocessor 是应用程序中处理SQL语句的推荐方法。 与 Db2 precompiler 相比, Db2 coprocessor 对SQL程序的限制更少,并且更全面地支持最新的SQL和编程语言增强功能。 参见使用 Db2 协处理器处理SQL语句更改结束

Db2 precompiler 会扫描程序并返回修改后的源代码,您可以对其进行编译和链接编辑。 预编译器还会生成一个DBRM(数据库请求模块)。 您可以使用BIND子命令将此DBRM绑定到一个软件包中。 完成这些步骤后,您可以运行您的 Db2 应用程序。

Db2 DSNHDECP模块版本
当您在程序中处理 SQL 语句时,如果 DSNHDECP 中的 Db2 版本是系统提供的默认版本,则 Db2 会发出警告,但处理仍会继续。 在这种情况下,请确保 Db2 在 DSNHDECP 中使用的信息准确反映了您的环境。

过程

要在应用程序中处理SQL语句,请使用以下方法之一:

  • 在编译程序时,请使用您正在使用的编程语言的 Db2 coprocessor 。 您可以使用 C、C++、 COBOL 和 PL/I 主机编译器 Db2 coprocessor
    要调用 Db2 coprocessor ,请指定SQL编译器选项及其子选项,这些子选项是为 Db2 precompiler 定义的选项。 一些 Db2 precompiler 选项被忽略。 更改开始您还可以从 z/OS® 上的 UNIX 系统服务调用 Db2 coprocessor ,在分区数据集或 HFS 文件中生成 DBRM。 更改结束

    更多信息,请参阅 《使用 Db2 协处理器处理SQL语句 》。

  • 在编译程序前,请使用 Db2 precompiler 。 更多信息,请参阅 《使用 Db2 预编译器处理SQL语句 》。
    对于汇编程序或 Fortran 应用程序,请使用 Db2 precompiler 来准备SQL语句。

结果

Db2 coprocessorDb2 precompiler 的主要输出是一个数据库请求模块(DBRM)。 但是, Db2 coprocessorDb2 precompiler 也会生成修改后的源语句、源语句列表、引用主机名和列的语句列表以及诊断信息。 更多信息,请参阅 Db2 预编译器的输出

后续操作

如果应用程序包含 CICS® 命令,则必须在编译前翻译程序。 更多信息,请参阅 CICS 程序中命令级语句的翻译