VS2008下C++连接Mysql

2014-06-19 23:01:52|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++, MySQL, 数据库|来源:唯设编程网

1. 到mysql官网上去下载 mysql针对c++的connector. 是一个zip 包。
安装后会在 MySQL 的安装目录下产生一个MySQL Connector C++ 1.0.5的包,里面有include和lib两个文件夹。
2. vs2008 中新建一个win32 console项目,右击项目,选择属性。
找到 配置属性--->c/c++----->常规----->附加包含目录    添加要包含的目录,这里选择上面安装后的include和lib两个文件夹.
找到 配置属性--->链接器----->常规----->附加库目录   添加要包含的目录,这里选择上面安装后的lib/opt文件夹.
找到 配置属性--->链接器----->输入----->附加依赖项   添加依赖项:mysqlcppconn.lib mysqlcppconn-static.lib
3. C:/Program Files/MySQL/MySQL Server 5.0/bin/libmySQL.dll  复制到system32下。
4. C:/Program Files/MySQL/MySQL Connector C++ 1.0.5/lib/opt/mysqlcppconn.dll  复制到system32下。
5. 测试的时候请在realease 模式下运行,因为这个connector 有BUG,在DEBUG模式下运行会崩溃。
 
下面是一段测试代码:
// TestMysql.cpp : 定义控制台应用程序的入口点。  
//  
#include "stdafx.h"  
#include "iostream"  
#include <mysql_connection.h>  
#include <cppconn/driver.h>  
#include <cppconn/exception.h>  
#include <cppconn/resultset.h>  
#include <cppconn/statement.h>  
using namespace std;  
int _tmain(int argc, _TCHAR* argv[])  
{  
	try {  
		sql::Driver *driver;  
		sql::Connection *con;  
		sql::Statement *stmt;  
		sql::ResultSet *res;  

		driver = get_driver_instance();  
		//连接数据库  
		con = driver->connect("tcp://127.0.0.1:3306", "root", "root");  

		//选择要连接的数据库  
		con->setSchema("sj");  
		//新建一个执行语句  
		stmt = con->createStatement();  
		//执行语句并返回结果集  
		res = stmt->executeQuery("SELECT * from user");  
		//遍历结果集  
		while (res->next())   
		{  
			//这里的ID是user表中的字段名  
			cout << res->getString("id") << endl;  
		}  
		//读取一个字符,目的是让CMD窗口停留,查看输出信息。  
		getchar();  
		delete res;  
		delete stmt;  
		delete con;  
	} catch (sql::SQLException &e) {  
		//有异常的情况下,输出异常  
		cout << "# ERR: SQLException in " << __FILE__;  
		cout << "(" << __FUNCTION__ << ") on line "   
			<< __LINE__ << endl;  
		cout << "# ERR: " << e.what();  
		cout << " (MySQL error code: " << e.getErrorCode();  
		cout << ", SQLState: " << e.getSQLState() << " )" << endl;  
	}  
	return EXIT_SUCCESS;  
} 
此时编译会提示如下错误: 
c:program filesmysqlmysql connector c++ 1.1.3includecppconnconnection.h(31) :  fatal error C1083: 无法打开包括文件: “boost/variant.hpp”:  No such file or directory
这是因为没有找到boost库,需要安装boost库,boost库的介绍可以在网上参考相关资料。下面介绍boost的下载及安装方法

第1步:下载

先从官网(www.boost.org)下载最新版的BOOST源码,

第2步:安装boost

编译源代码(放心.这里是傻瓜式的操作,很容易操作)
(1)先把源代码放在E盘,例如 E:oost_1_53_0
(2)在源代码中找到一个批处理bootstrap.bat,运行即可
此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe
(3)运行bjame.exe即能编译了(花费时间很长,大概20分钟).

第3步:在项目添加包含

包含目录的添加:
VS2008连接MySQL
连接目录库的添加
VS2008连接MySQL
此时测试代码就可以正常编译了!

 

发表评论0条 】
网友评论(共?条评论)..
VS2008下C++连接Mysql