笔记本是X64 WIN7,Visual Studio 2010,配置Connector/C++总是有各种问题,经过一段时间摸索,记录若干有用信息。
最终在台式机上配置成功,X86 WIN7 Visual Studio 2008
(貌似是2010有点问题,怎么都配置不成功,不过我最后编译能通过,怀疑是MySQL的原因,具体一下说明)
============X86 WIN7, Visual Studio 2008, Connector C++ 1.0.5==============
转到项目属性页,
1、configuration properties->C/C++->general->additional include directories
增加:
C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include
C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\include\cppconn
(当然,这是我的位置)
2、configuration properties->linker->general->additional library directories
增加:
C:\Program Files\MySQL\MySQL Connector C++ 1.0.5\lib\debug
(这里很重要的一点:如果项目当前状态是Debug,则增加以上一条,如果是Release,则加入..\lib\opt)
3、configuration properties->linker->input->additional dependencies
增加:
mysqlcppconn-static.lib
mysqlcppconn.lib
(这个其实就在2、中加入的lib里)
4、对应2、中所增加的目录,其下分别有一个mysqlcppconn.dll,如果你增加的..\lib\debug,则将这里的mysqlcppconn.dll拷一份放到window/system32下面,另一种情况对应。放到项目目录下可能也行。
5、还有就是MySQL安装目录下有个lib\libmysql.dll,把它也放到system32下。
基本就这样了,哪下面的代码试一下。mysql默认的数据库有world,其中有个表city:
- #include "stdafx.h"
- #include <mysql_connection.h>
- #include <mysql_driver.h>
- #include <statement.h>
- using namespace sql;
- using namespace std;
- void RunConnectMySQL()
- {
- mysql::MySQL_Driver *driver;
- Connection *con;
- Statement *state;
- ResultSet *result;
- // 初始化驱动
- driver = sql::mysql::get_mysql_driver_instance();
- // 建立链接
- con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
- state = con->createStatement();
- state->execute("use world");
- // 查询
- result = state->executeQuery("select * from city");
- // 输出查询
- while(result->next())
- {
- int id = result->getInt("ID");
- //string name = result->getString("name");
- cout << id << " : " << endl;
- }
- delete state;
- delete con;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- RunConnectMySQL();
- getchar();
- return 0;
- }
再者就是,
================X64 WIN7 Visual Studio 2010==============
需要说明的是,在64位系统下,需要把程序转换为64位平台,具体:
项目属性页右上角有configuration management->active solution,选择x64,不过在这之前需要安装64位编译器,默认是没有安装的,找到安装的iso文件补一下即可。
然后配置大致相同,需要注意的是,connector/c++也要是64位的,mysql应该也是64位的,但是我这边安装64位的mysql总是配置不成功,妈的。不搞了,能编译,但是访问不了,应该就是这么解决的。
暂且这样吧,留此权当笔记,欢迎拍砖。