gpt4 book ai didi

c++ - MySQL 连接器/C++ PreparedStatement : forward declaration of ‘class sql::PreparedStatement’

转载 作者:太空狗 更新时间:2023-10-29 23:30:26 26 4
gpt4 key购买 nike

我对 C++ Mysql 连接器有“一点”问题。我想使用 PreparedStatement。我尝试了文档中的示例 http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-prepared-statements.html

我无法编译这段代码。我仍然收到错误:

main.cpp:32:10: 错误:无效使用不完整类型‘class sql::PreparedStatement’在/usr/include/mysql_connection.h:28:0 包含的文件中, 来自 main.cpp:4:/usr/include/cppconn/connection.h:44:7:​​ 错误:'class sql::PreparedStatement' 的前向声明

我使用带有 g++ 4.7.2 的 debian 7。

我已经用谷歌搜索了几个小时,但我不知道如何解决这个问题。如果有任何建议,我会很高兴。

我的代码:

#include <iostream>
#include <cstdlib>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>

int main(int argc, char** argv) {
try{
sql::Driver *driver;
sql::Connection *con;
sql::PreparedStatement *prep_stmt;

driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "username", "pass");
// db name
con->setSchema("aa");

prep_stmt = con->prepareStatement("INSERT INTO test(id, name) VALUES (?, ?)");

// this will couse compilation error
prep_stmt->setInt(1, 1);

// this will cause only warning but same message
delete prep_stmt;

delete con;
}
catch (sql::SQLException &e) {
std::cout << "ERR: " << e.what() << std::endl;
}
return 0;
}

最佳答案

缺少一个#include,你必须设置:

#include <cppconn/prepared_statement.h>

关于c++ - MySQL 连接器/C++ PreparedStatement : forward declaration of ‘class sql::PreparedStatement’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20583026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com