VC++ 2010 连接mysql 数据库问题

howe4733 2013-03-12 04:46:18
环境说明:
1.win7 64位;
2.VS 2010;
3.mysql version 5.6.10, [http://www.mysql.com/downloads/installer/ , mysql-installer-community-5.6.10.1];
4.mysql connector/C++ 1.1.2, [http://www.mysql.com/downloads/connector/cpp/, mysql-connector-c++-1.1.2.tar];
5.boost version 1.5.1, [boost_1_51_setup]
6.将C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysys.dll和C:\Program Files\MySQL\Connector C++ 1.1.2\lib\opt\mysqlcppconn.dll文件复制到了 C:\Windows|System32文件夹下;

7.控制台程序的Release 编译模式;

8.VC++2010 工程属性配如图:


9.程序代码:

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

using namespace sql;
using namespace std;

void RunConnectMySQL()
{
sql::Driver *driver;
Connection *con;
Statement *state;
ResultSet *result;
// 始化驱动
driver = get_driver_instance();
// 建立链接
con = driver->connect("tcp://127.0.0.1:3306", "root", "123");
state = con->createStatement();
state->execute("use test");
// 查询
result = state->executeQuery("select * from testuser where id < 1002");
// 输出查询
while(result->next())
{
int id = result->getInt("ID");
string name = result->getString("name");
cout << id <<" : "<< name << endl;
}
delete state;
delete con;
}

int main()
{
RunConnectMySQL();
getchar();
return 0;
}


10.编译错误:
1>------ Rebuild All started: Project: mysql2012, Configuration: Release Win32 ------
1>Build started 3/12/2013 4:38:41 PM.
1>_PrepareForClean:
1> Deleting file "Release\mysql2012.lastbuildstate".
1>InitializeBuildStatus:
1> Touching "Release\mysql2012.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>main.obj : error LNK2001: unresolved external symbol _get_driver_instance
1>c:\Users\Admin\Documents\Visual Studio 2010\Projects\mysql2012\Release\mysql2012.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:03.04
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

11.请问各位:我是哪里设置不对还是有问题呀?
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
howe4733 2013-03-13
  • 打赏
  • 举报
回复
谢谢您的抽空回复。我也用了dumpbin工具查看了动态链接库mysqlcppconn.dll,其内部的确有get_driver_instance()函数的呀! dumpbin结果显示如下: C:\Users\Admin>dumpbin -exports C:\Windows\System32\mysqlcppconn.dll Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file C:\Windows\System32\mysqlcppconn.dll File Type: DLL Section contains the following exports for mysqlcppconn.dll 00000000 characteristics 510158D5 time date stamp Thu Jan 24 23:52:53 2013 0.00 version 1 ordinal base 125 number of functions 125 number of names ordinal hint RVA name 1 0 00002379 ??0Connection@sql@@QEAA@XZ 2 1 00003AB7 ??0Driver@sql@@QEAA@AEBV01@@Z 3 2 00001843 ??0Driver@sql@@QEAA@XZ 4 3 00003A03 ??0InvalidArgumentException@sql@@QEAA@AEBU01@@Z ...... 120 77 00001A73 ?substr@SQLString@sql@@QEBA?AV12@_K0@Z 121 78 00002D33 ?threadEnd@MySQL_Driver@mysql@sql@@UEAAXXZ 122 79 00002ABD ?threadInit@MySQL_Driver@mysql@sql@@UEAAXXZ 123 7A 000035AD get_driver_instance 124 7B 00003CBA get_driver_instance_by_name 125 7C 000012A8 sql_mysql_get_driver_instance 看网上的资料说是很好设置的,我也是参考了好几个人的指导设置[http://bbs.csdn.net/topics/390054582#r_78590266 ]的,也参考了mysql的官方说明[http://dev.mysql.com/doc/connector-cpp/en/connector-cpp-apps-windows-visual-studio.html].
秃头披风侠 2013-03-12
  • 打赏
  • 举报
回复
看起来应该是哪些库没有配好 我不太清楚MySQL怎么配置,楼主确认下是不是有需要放到代码路径的库,或者在设置库目录的时候有没有遗漏,静态库有没有加入工程什么的

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧