MFC实现SQL数据库ADO连接

上传人:cl****1 文档编号:489240630 上传时间:2023-11-14 格式:DOCX 页数:12 大小:91.25KB
返回 下载 相关 举报
MFC实现SQL数据库ADO连接_第1页
第1页 / 共12页
MFC实现SQL数据库ADO连接_第2页
第2页 / 共12页
MFC实现SQL数据库ADO连接_第3页
第3页 / 共12页
MFC实现SQL数据库ADO连接_第4页
第4页 / 共12页
MFC实现SQL数据库ADO连接_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《MFC实现SQL数据库ADO连接》由会员分享,可在线阅读,更多相关《MFC实现SQL数据库ADO连接(12页珍藏版)》请在金锄头文库上搜索。

1、VC MFC实现SQL数据库ADO连接(完整版)关于vc6.0中实现ADO SQL数据库连接的文章网上虽然很多,但大多写的很繁琐,对于我们这样的 菜鸟来说,还是很希望有一篇简单化的文章的。希望跟我一样的菜鸟们学得开心!源代码文件链接:http:/ ADOConn,需要连接数据库的时候将这个类实例化就可以了。操作:新建一个ADOConn的对象,比如ADOConn ac;。然后再引用些对象就可以实现相应的操 作了。实践过程:(一)目的:封装一个自己的类。在vc6.0中新建一个基于对话框的mfc工程,然后点击菜单栏-插入-类(mfc类)。然后在“类的类型”中选择Generic Class,名称为AD

2、OConn。此后会在vc左边视窗的“Source Files”中多出一个 ADOConn.cpp的文件,在HeaderFiles中多出一个“ADOCon.h”的文件。如果是用VS2013来创建工程的情况:VS2013中添加类:右击myMFC (新建的项目)添加类 MFC类。(二) 打开ADOConn.h(即编辑ADOConn类的头文件)(1) 在第一行加入(用于vc支持ado连接)#import C:Program FilesCommon FilesSystemadomsadol5.dll no_namespace rename(EOF,adoEOF) rename(BOF,adoBOF)不要

3、命名空间,重命名EOF为adoEOF,rename的意思就是改名了,rename(EOF,adoEOF)将EOF 改名为adoEOF,以免和C语言里的EOF重名。这句话意味使用msado15.dll动态连接库文件,里面就有ADO.如果存在问题:用VS2010的C+导入ADO导入不了,提示无法打开源文件msado15.tlh”的问题。 解决办法很简单:在生成菜单-重新生成-即可。原因是:当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上 相当于执行了 API涵LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分

4、别为 *.tlh(类型库头文件)及 *tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID 等进行声明,创建一系列包装方法。在没有经过编译器编译之前,文件还没有生成,所以,会出现错误 提示。(2) 在class ADOConn类体中添加如下代码public:/定义变量_ConnectionPtrm_pConnection; _RecordsetPtrm_pRecordset;/初始化一连接数据库void OnInitADOConn();/执行査询_RecordsetPtr &GetRecordSet(_bstr_tbstrSQL);/ 执行 SQL

5、 语句,Insert Update _variant_tBOOL ExecuteSQL(_bstr_tbstrSQL);void ExitConnect();至此ADOConnh的操作完成。(三) 打开ADOConn.cpp(逐个实现其头文件AD0Conn.h中定义但末实现的方法),将如下代码拷入文件 末尾。/初始化一连接数据库(实现方法)void ADOConn:OnInitADOConn() :CoInitialize(NULL);初始化 COM 环境try 创建connection对象(创建连接对象实例)m_pConnection.CreateInstance(ADODB .Connec

6、tion);/设置连接字符串,必须是BSTR型或者bstrd类型_bstr_tstrConnect=Provider=SQLOLEDB;Server=DESKTOP-80T6JHL;Database=table1; uid=sa; pwd=1234; m_pConnection-Open(strConnect, , , adModeUnknown);连接数据库捕捉错误catch (_com_error e)捕获错误显示错误信息AfxMessageBox(e .Description。);执行査询_RecordsetPtr&ADOConn:GetRecordSet(_bstr_tbstrSQL)

7、try连接数据库,如果connection为空,则重新连接if (m_pConnection = NULL)OnInitADOConn();创建记录集对象m_pRecordsetCreateInstance(_uuidof(Recordset);取得表中的记录m_pRecordset-Open(bstrSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic, adCmdText);捕捉异常catch (_com_error e)显示错误信息AfxMessageBox(e .Description。);返回记录集r

8、eturn m_pRecordset;/ 执行 SQL 语句,Insert Update _variant_tBOOL ADOConn:ExecuteSQL(_bstr_tbstrSQL)/ _variant_tRecordsAffected;try/判断是否已经连接数据库if (m_pConnection = NULL)OnInitADOConn();/ Connection 对象的 Execute 方法:(_bstr_tCommandText,/ VARIANT * RecordsAffected, long Options )/其中CommandText是命令字串,通常是SQL命令。/参

9、数RecordsAffected是操作完成后所影响的行数,/ 参数 Options 表示 CommandText 的类型:adCmdText文本命令;adCmdTable-表名 / adCmdProc-存储过程;adCmdUnknown-未知 m_pConnection-Execute(bstrSQL, NULL, adCmdText);return true;catch (_com_error e)AfxMessageBox(e .Description。);return false;void ADOConn:ExitConnect()/关闭记录集和连接if (m_pRecordset !=

10、 NULL)m_pRecordset-Close();m_pConnection-Close();/释放环境:CoUninitialize();这段代码涉及到获取数据库连接中会出现的异常,并进行处理,不用过于深究其作用,等数据库连 接成功后再慢慢研究。此段代码中有些地方要根据自己数据库的配置情况,进行适当的改动。需要改动的代码为:_bstr_tstrConnect = pwd=123456;根据自己的实际数据库情况进行修改如:_bstr_tstrConnect = Provider=SQLOLEDB; Server= DESKTOP-80T6JHL;Database=table1; uid=s

11、a; pwd=1234;Provider不用改,Server是服务器的名称,怎么查看呢?打开sqlmanagementstudio连接进行后在左边的“对象资源管理器”中会看到服务器的名称。我的叫DESKT0P-80T6JHL;Database是要连接到的数据库名称。比如我在management studio中新 建了一个数据库tablel;uid=登陆服务器的用户名;pwd=这个用户名的密码,我的密码是123456;到这里 就完成了此段代码的修改了。(四) 保存以上文件。即完成了 sql ado连接类ADOConn的编辑。比如我要在telbookDlg.cpp中需要连接到数据库,只需要引用如下

12、代码:ADOConn ac;实例化对象ac.OnInitADOConn():连接_bstr t vs;/定义一个变量用于存放你自己编写的sql命令vs=delete from people where id=l;向 vs 中写入要执行的 sql 命令ac. ExecuteSQL (vs):调用 ac 的 ExecuteSQL()函数执行 sql 命令ac. ExitConnect ();/操作完成后,断开与数据库连接到此,实现ado sql数据库的功能。知识点补充:要插入数据可以调用下面的语句:ADOConn conn;conn O nInitADOConn();_bstr_tvSQL;vSQ

13、L = INSERT INTO Student dbo 用户(用户名,密码)VALUES(seamanj,123);conn. ExecuteSQL(vSQL);其他说明:判断数据库连接是否成功的函数:BOOL CADOConn:OnInitADOConn():Colnitialize(NULL);初始化 COM 环境trym_pConnection.Createlnstance仃EXT(ADODB.Connection); 创建连接对象实例 _bstr_t strConnect=连接语句; m_pConnection-Open(strConnect,adModeUnKnown);连接数据库c

14、atch(_com_error e)捕获错误AfxMessageBox(TEXT(连接数据库失败);AfxMessageBox(e .Description。);AfxMessageBox(e ErrorMessage();return false;连接失败则返回falsereturn true;连接成功则返回true详解MFC使用ADO连接SQLServer数据库VC用ADO访问数据库全攻略,介绍了 VC用ADO来访问数据库的各个对象及各方法,很经典,也很 实用,很值得一看。一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例OLE DB而设计的,是一个便于使用的应用程序 层接口。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。二、在VC中使用ADO接口技术1、引入ADO库文件使用ADO前必须在工程的stdafx.h头文件里的顶头引入ADO库文件,以使编译器能正确编译。用#import引入ADO库文件#import c:program filescommon filessystemadomsado15.dllno_namespaces rename(EOF adoEO

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号