-1

因此,我在嵌入式 SQL 部分(参见:http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm)中获得了从 IBM 获得的示例 C++ 程序(如何连接和断开与数据库的连接)。 db2.luw.apdv.samptop.doc/doc/r0011556.html )

我正在使用 Dev C++,每当我编译它时,它都会给我一个错误。它说:

[错误] 'EXEC' 没有命名类型

有谁知道这是什么原因?这是缺少的头文件吗?

EDIT1:这是代码的直接链接:http: //www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.sample.doc/doc/cpp/s- dbconn-sqC.html

4

1 回答 1

1

问题是您链接的示例不是普通的 C++。这是 IBM 在 C++ 中的嵌入式 SQL的示例,它需要使用 IBM 提供的工具进行一些预处理,然后才能将其输入不了解嵌入式 SQL 的编译器或标准 C++ IDE(如 Dev C++)。引用链接(强调我的):

构建嵌入式 SQL 应用程序涉及 应用程序编译和链接之前的两个先决步骤。

  1. 使用 DB2 预编译器准备包含嵌入式 SQL 语句的源文件。

    PREP (PRECOMPILE) 命令用于调用 DB2 预编译器,该预编译器读取您的源代码,解析嵌入式 SQL 语句并将其转换为 DB2 运行时服务 API 调用,最后将输出写入一个新修改的源文件。预编译器为 SQL 语句生成访问计划,这些语句作为一个包一起存储在数据库中。

  2. 将应用程序中的语句绑定到目标数据库。

    默认情况下,绑定在预编译期间完成(PREP 命令)。如果要延迟绑定(例如,稍后运行 BIND 命令),则需要在 PREP 时指定 BINDFILE 选项,以便生成绑定文件。

一旦您预编译并绑定了嵌入式 SQL 应用程序,就可以使用特定于宿主语言的开发工具对其进行编译和链接。

因此,您必须使用一些 IBM 的工具(大概称为 )对示例进行预处理,PREP然后才能获得有效的 C++ 代码。我不确定让 Dev C++ 自动使用它是否容易或可能。

于 2017-02-02T08:28:43.047 回答