您的位置:首页 > 编程语言 > C语言/C++

MySQL Connector C++库在VS2010平台连接访问远程MySQL数据库

2014-12-06 13:24 337 查看
近段时间由于需要利用C++访问MySQL数据库做调试分析,所以就是用了MySQL官网提供的MySQL Connector C++库来访问数据库,在这过程中遇到过一些问题,纠结了很久,所以想把这些记下来。

首先去MySQL官网下载了MySQL Connector/C++,下面是下载地址

http://downloads.mysql.com/archives/c-cpp/

可以选择安装版也可以选择源码包,这个大家随意。

我这里选择的是:



在你安装完成后到你的安装目录下面,会发现有两个目录,一个是include,一个是lib,如我的是:



在这两个目录当中,include是开发所需要的头文件,lib是相应的静态库和动态链接库

include的内容如下:



lib目录的内容如下:



在lib目录下有两个子目录,一个是debug,一个是opt,当你在Win32的Debug模式下时,就是用这个目录下的库文件,当在Win32的Release模式下时,就是用Opt目录下的库文件。

现在就需要来配置VS2010,让你在编程时编译器能够识别这些文件。

1.我们打开VS2010,建立一个工程项目,然后点击左侧主菜单的属性管理器(Property Manager),然后我们会看到如下内容:



我们随便选择Debug或者Release中的一个,然后点开选择Microsoft.Cpp.Win32.user(直接双击即可),会弹出如下界面:



然后选择VC++目录选项,看到右侧有“包含目录”和“库目录”,在包含目录里面加上你刚才安装的MySQL Connector/C++目录下的include目录,如下所示



然后再设置这个库目录的路径,把安装目录下的Lib目录的路径加入“库目录”选项中:



经过这般设置之后,就可以编写程序了,注意这样设置,是对所有项目都生效的,以后某个程序还要使用这个库就不需要再次设置路径了。

接下来我们就来编写一个简单的访问程序(当然我们需要开启数据库服务,并且在数据库中建立相应的表,这里我就不赘述了),代码如下:

//标准头文件
#include <iostream>
#include <iomanip>

//包含MySQL Connector C++的相应的头文件

/*
Include directly the different
headers from cppconn/ and mysql_driver.h + mysql_util.h
(and mysql_connection.h). This will reduce your build time!
*/

#include "mysql_connection.h"
#include "mysql_driver.h"
#include "cppconn/resultset.h"
#include "cppconn/connection.h"
#include "cppconn/exception.h"
#include "cppconn/driver.h"
#include "cppconn/statement.h"
using namespace std;
using namespace sql;

//加载MySQL Connector/C++的lib文件
#pragma comment(lib,"mysqlcppconn.lib")
#pragma comment(lib,"mysqlcppconn-static.lib")

int main()
{
try
{
sql::mysql::MySQL_Driver * driver; //声明一个驱动指针
sql::Connection * conn; //连接指针
sql::Statement * stmt; //
sql::ResultSet * res; //结果集指针

//建立连接
driver = sql::mysql::get_mysql_driver_instance();
conn = driver->connect("tcp://192.168.154.129:3306","Remote","123456");

//指定数据库
stmt = conn->createStatement();
stmt->execute("use SQL_Study");

//执行查询
res = stmt->executeQuery("select selling_price,count(*) as count from volume group by selling_price having selling_price > 75");

//结果返回并输出
cout<<" --------------------------------------"<<endl;
cout<<" | selling_price | count |"<<endl;
while(res->next())
{
cout<<" | "<<setw(6)<<res->getString(1)<<" | "<<res->getString("count")<<" |"<<endl;
}
cout<<" --------------------------------------"<<endl;

//释放指针空间
delete res;
delete stmt;
delete conn;
}
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 0;
}



然后就编译运行,程序执行成功!!

注意:

在下载MySQL Connector/C++库的时候一定要看清楚64位还是32位,如果你的系统是64位的你就选择Win64,如果是32为的,那你就选择Win32。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql c++ vs2010