当前位置:   article > 正文

关于MySQL Connector/C++那点事儿

c++ sql::driver connect 未经处理的异常

如果从官方直接下载的库使用时遇到类似如下的问题:

原因是官方提供的库文件版本与需要的库版本不匹配,提供的debug版本使用的是MT版本,在debug模式下会出现内存错误,导致crash。

TestC.exe中的...dll有未经处理的异常:读取位置时发生访问冲突。

那么可能需要自己手动编译源码(参考编译MySQL Connector/C++的资料)啦:

重新设置包含目录和库目录(实际中请把想要的头文件和库文件最好放到自己的工程目录里的第三方库或头文件如Libs之类的目录下,保证工程的可一致性,而不是像这里这样F:\Tools\....这样):

 

重新编译运行:

 

 

  1. #include <stdlib.h>
  2. #include <iostream>
  3. #include <driver/mysql_connection.h>
  4. #include <cppconn/driver.h>
  5. #include <cppconn/exception.h>
  6. #include <cppconn/resultset.h>
  7. #include <cppconn/statement.h>
  8. using namespace std;
  9. int main(void)
  10. {
  11. cout << "Running 'SELECT 'Hello World!' AS _message'..." << endl;
  12. try
  13. {
  14. sql::Driver *driver;
  15. sql::Connection *con;
  16. sql::Statement *stmt;
  17. sql::ResultSet *res;
  18. /* 连接mysql服务器 */
  19. driver = get_driver_instance();
  20. con = driver->connect("tcp://127.0.0.1:3307", "root", "*****");
  21. con->setSchema("test");
  22. stmt = con->createStatement();
  23. res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
  24. while (res->next()) {
  25. //通过列别名访问
  26. cout << res->getString("_message") << endl;
  27. //通过列偏移
  28. cout << res->getString(1) << endl;
  29. }
  30. delete res;
  31. delete stmt;
  32. delete con;
  33. }
  34. catch (sql::SQLException &e)
  35. {
  36. cout << "# ERR: SQLException in " << __FILE__;
  37. cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
  38. cout << "# ERR: " << e.what();
  39. cout << " (MySQL error code: " << e.getErrorCode();
  40. cout << ", SQLState: " << e.getSQLState() << " )" << endl;
  41. }
  42. cin.get();
  43. return EXIT_SUCCESS;
  44. }

  

 MySQL Connector/C++文档:

http://dev.mysql.com/doc/refman/5.6/en/connector-cpp.html

转载于:https://www.cnblogs.com/xcf007/p/3451002.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/676522
推荐阅读
相关标签
  

闽ICP备14008679号