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官网下载了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数据库怎么实现远程连接访问
- 设置mysql数据库允许被远程连接访问
- vs2010连接mysql数据库(含win32和x64两种平台)
- VS2010连接MySQL数据库的平台搭建(C/C++)
- vs2010连接mysql数据库(含win32和x64两种平台)
- mysql数据库允许被远程连接访问
- 允许本地mysql数据库本远程连接访问
- MySQL数据库怎么实现远程连接访问(中)
- MySQL数据库怎么实现远程连接访问
- mysql数据库可以远程连接或者说用IP地址可以访问
- 让mysql数据库允许被远程连接访问
- 如何让mysql数据库允许被远程连接访问?
- Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库
- 如何让mysql数据库允许被远程连接访问(业务机连数据机)
- MySQL数据库如何实现远程连接访问(上)
- 如何让mysql数据库允许被远程连接访问?就是从其他的电脑连接我的电脑上的mysql
- 如何让mysql数据库允许被远程连接访问?就是从其他的电脑连接我的电脑上的mysql
- 如何让mysql数据库允许被远程连接访问?就是从其他的电脑连接我的电脑上的mysql
- VS2010环境与OpenMP远程多线程访问MySQL数据库的限制和困惑
- mysql默认允许被连接的只有从本机,从其他主机连接会被拒绝,如何让mysql数据库允许被远程连接访问?