使用c ++连接器的c ++ mysql连接bad_alloc

时间:2016-08-23 12:48:03

标签: c++ mysql mysql-connector

尝试构建一个简单的mysql连接,但获得#include <iostream> #include <stdlib.h> #include <sstream> #include <memory> #include <string> #include <stdexcept> #include "mysql_connection.h" #include "cppconn\driver.h" #include "cppconn\statement.h" #include "cppconn\connection.h" #include "cppconn\exception.h" #include "cppconn\prepared_statement.h" #include "cppconn\statement.h" using namespace std; using namespace sql; int main() { Driver *driver; Connection *conn; Statement *stmt; driver = get_driver_instance(); conn = driver->connect("127.0.0.1:3306", "root", "root"); // breaks here stmt = conn->createStatement(); stmt->execute("USE mydb"); return 0; } 并且我无法弄清楚如何解决这个问题,即使查看类似帖子

这是我的代码

mysql-connector-c++-1.1.7

我正在使用mysqlcppconn.lib mysqlcppconn.dll用作依赖项 .exeException thrown at 0x000007FEFD39A06D in MysqlConn.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x000000000014F5D0.位于同一目录。

这是错误 SELECT t1.col1,t1.col2 FROM table1 AS t1 WHERE t1.col2 IN ( SELECT DISTINCT(t2.col1) FROM table2 AS t2 WHERE t2.col2 IN ( SELECT t3.col1 FROM table3 AS t3 WHERE t3.col2 = '04' ORDER BY t3.col1 ASC ) ORDER BY t2.col1 ASC )

谢谢

2 个答案:

答案 0 :(得分:0)

我在linux上遇到了同样的错误。

错误是:我使用g++-4.8来构建项目

问题在于用于构建项目的构建工具(gcc,msvs,clang)的版本

答案 1 :(得分:0)

我也有这个错误。就我而言,我正在Windows中使用VS2015进行编译。

我第一次选择编译MySQL lib的静态版本。然后我决定编译动态版本。这次内存中的错误bad_alloc熄灭了。

解决方案是回滚CPPCONN_PUBLIC_FUNC =配置。

转到项目属性页面,在C ++&gt;下;预处理器&gt;预处理器定义并删除项CPPCONN_PUBLIC_FUNC="