• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > C++ ADO操作mysql数据库

C++ ADO操作mysql数据库

作者:tudou23115 字体:[增加 减小] 来源:互联网 时间:2017-09-29

tudou23115通过本文主要向大家介绍了等相关知识,希望本文的分享对您有所帮助

 对于软件开发其实说白了就是在不停地和数据打交道, 所以数据库的操作是必不可少的, 接下来介绍VC开发中利用ADO建立ODBC数据源来访问MySQL数据库.

       从我接触的数据库编程方式来说, 我觉得在vc开发连接数据库是比较难的, 也是很容易出错. 在android中, 系统自带sqlite数据库,只需要使用SQLiteOpenHelper抽象类即可完成与数据库的操作. 在java中, 使用jdbc连接mysql数据库, 下载相应jar调用相应接口,传入数据库类型与用户名密码进行数据库的操作. 但是ado连接数据库比较复杂, 接下来我们看一下如何使用ado连接数据库.

一. 安装mysql

       首先你需要确保电脑上已经安装了mysql数据库, 并使用用户名与密码成功使用mysql. 如何安装配置mysql, 这里不做详细介绍.

          如果不了解如何安装配置mysql可以参考这个地址:  点击打开链接

 

二.  ADO方式连接MySql

1. 导入ado数据库, 在你的程序中添加下面语句来导入ado数据库

 

view plain copy print?

  1. // no_namespace rename("EOF", "adoEOF")防止命名重复,将EOF重命名为adoEOF  
  2.   
  3. #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")   
// no_namespace rename("EOF", "adoEOF")防止命名重复,将EOF重命名为adoEOF

#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") 


 2. 初始化com环境

 

 

view plain copy print?

  1. //初始化com环境  
  2. AfxOleInit();  
//初始化com环境
AfxOleInit();


3. 创建数据表结构,用来保存从数据库中获取的内容
假设数据表只有两个字段:用户ID与用户名

 

 

view plain copy print?

  1. typedef struct _OBJ_USER  
  2. {  
  3.     int User_ID;  
  4.     TCHAR User_Name[32];  
  5. }OBJ_USER;  
typedef struct _OBJ_USER
{
	int User_ID;
	TCHAR User_Name[32];
}OBJ_USER;

4.创建操作数据库的类operator类

 

 

view plain copy print?

  1. class CDataOperator  
  2. {  
  3. public:  
  4.     CDataOperator();  
  5.     ~CDataOperator();  
  6. public:  
  7.     //打开指定的数据库  
  8.     BOOL OpenDatabase(CString strDbName, CString strUserName, CString strUserPwd);  
  9. public:  
  10.     //执行sql语句,增加数据,删除数据  
  11.     BOOL ExecuteSQL(CString sql);  
  12.     //查询数据  
  13.     BOOL Select_From_User(vector<OBJ_USER> &vecObjUser);  
  14.     //插入数据, 可以插入图片,二进制数据(大数据)  
  15.     BOOL Insert_Into_User(OBJ_USER &objUser);  
  16.     //更新数据, 可更新大数据  
  17.     BOOL Update_For_User(OBJ_USER &objUser);  
  18. public:  
  19.     //连接对象  
  20.     _ConnectionPtr m_pConnection;  
  21. };  
class CDataOperator
{
public:
	CDataOperator();
	~CDataOperator();
public:
	//打开指定的数据库
	BOOL OpenDatabase(CString strDbName, CString strUserName, CString strUserPwd);
public:
	//执行sql语句,增加数据,删除数据
	BOOL ExecuteSQL(CString sql);
	//查询数据
	BOOL Select_From_User(vector<OBJ_USER> &vecObjUser);
	//插入数据, 可以插入图片,二进制数据(大数据)
	BOOL Insert_Into_User(OBJ_USER &objUser);
	//更新数据, 可更新大数据
	BOOL Update_For_User(OBJ_USER &objUser);
public:
	//连接对象
	_ConnectionPtr m_pConnection;
};


5. operator类的定义

 

 

view plain copy print?

  1. CDataOperator::CDataOperator()  
  2. {  
  3.     try  
  4.     {  
  5.         //创建连接对象  
  6.         HRESULT hr = m_pConnection.CreateInstance(_T("ADODB.Connection"));  
  7.         if (FAILED(hr))  
  8.         {  
  9.             m_pConnection = NULL;  
  10.         }  
  11.     }  
  12.     catch (_com_error &e)  
  13.     {  
  14.         e.ErrorMessage();  
  15.     }  
  16. }  
  17.   
  18. CDataOperator::~CDataOperator()  
  19. {  
  20.     if (m_pConnection)  
  21.     {  
  22.         try  
  23.         {  
  24.             //将连接对象关闭  
  25.             HRESULT hr = m_pConnection->Close();  
  26.         }  
  27.         catch (_com_error &e)  
  28.         {  
  29.             e.ErrorMessage();  
  30.         }  
  31.         //释放连接对象  
  32.         m_pConnection.Release();  
  33.         m_pConnection = NULL;  
  34.     }  
  35. }  
  36.   
  37. //打开数据库的操作  
  38. BOOL CDataOperator::OpenDatabase(CString strDbName, CString strUserName, CString strUserPwd)  
  39. {  
  40.     if (NULL ==&n
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05日期和时间处理函数及数值处理函数实例(数据处理函数的使用二)
  • 2017-05-11MySQL查询和修改auto_increment的方法
  • 2018-12-05MySql如何取消密码强度验证
  • 2018-12-05html-php登陆页面的代码,md5加密
  • 2018-12-05 mysql创建表并将数据装入表
  • 2017-05-11MySQL错误代码大全
  • 2017-05-11mysql主从同步快速设置方法
  • 2018-12-05关于mysql5.7.17.msi的安装图文教程分享
  • 2017-05-11MySQL中表复制:create table like 与 create table as select
  • 2018-12-05详解MySQL PXC构建新节点只需IST传输的方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 远程MySQL数据库无法访问设置
    • MySQL慢查询日志的配置以及使用教程详解
    • mysql LOAD语句批量录入数据
    • 谈谈CentOS6.5_x64的现状、前景与机遇
    • 财政年度表之建表约束
    • phpMyAdmin下将Excel中的数据导入MySql的图文方法
    • mysql中常用的命令汇总
    • Mysql数据库绿色版如何安以及解决1067错误图文教程
    • 12个优化MySQL的技巧小整理
    • PHP访问MySQL查询超时处理的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有