1)下载最新版的mysql-connector才能适应vs2010,以下是安装版,
http://dev.mysql.com/downloads/connector/cpp/
下载要登陆,myfeis@163.com 密码m********8
选Windows (x86, 32-bit), MSI Installer1.0-win32.msi 下载到mysql-connector-c++-1.1.0-win32.msi
之后按默认安装到C:\Program Files\MySQL\MySQL Connector C++ 1.1.0里。
安装后也可以拷贝出来,成免费安装。
可以随意放到项目的目录下将整个包解压到项目文件夹下的的源文件目录。文件夹名字太长,将“mysql-connector-c++-noinstall-1.0.5-win32”改为“mysql”
但在这里,就不要动了,选安装的目录就行了
注意:
运行时,会提示找不到sqlstring.h,看sqlstring.h下载地址.txt
(把sqlstring.h 拷贝到C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include\cppconn下)
(2)配置vs2010的环境 1. 项目属性页->C/C++->常规->附加包含目录,添加两项路径,一项一行: C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\include\cppconn 2. 项目属性页->链接器>常规->附加库目录,添加一个目录: C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt 3. 项目属性页->链接器>输入>附加依赖项。添加这两项 mysqlcppconn.lib;mysqlcppconn-static.lib(在C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt目录下的两个.lib文件) 4. 将C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt下的mysqlcppconn.dll文件复制到系统驱动盘.windows\system32目录下。 环境配置完毕。 (3)在mysql建一张表(事先安装好了mysql5) 在连接数据库之前,在>mysql先建立一张表。 (其实这些可以在代码中完成,我这样是为了让测试代码尽可能简练易查错) 打开控制台,输入mysql -u root -p,输入密码。 查看当前已有的数据库。(SQL语句末尾加上';'表示立即执行当前语句。) mysql> show databases; 创建数据库 mysql> create database test; 使用数据库(这句不能加分号) mysql> use test 查看已有的表 mysql> show tables; 创建表 mysql> create table testuser ( id INT, name CHAR(20)); 插入数据 mysql> insert into testuser(id, name) values(1001, 'google'); mysql> insert into testuser(id, name) values(1002, 'kingsoft'); mysql> insert into testuser(id, name) values(1003, 'firefox'); (4)VC++代码实现 查询这些数据 #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", "123456"); 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 _tmain(int argc, _TCHAR* argv[]) { RunConnectMySQL(); getchar(); return 0; } |