欢迎来到天天文库
浏览记录
ID:23180446
大小:74.58 KB
页数:11页
时间:2018-11-05
《mfc运用ado操作数据库》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MFC运用ADO操作数据库一,数据库访问技术目前数据库接口问技术主要有DAO,RDO,ODBC,OLEDB和ADOODBC,开发数据库互连。为数据库开发提供统一的接口,可以与任何具有ODBC驱动程序的数据库通信。和其他数据库访问技术相比,属于比较底层的数据库接口。只能和关心数据库进行通信,不能访问非关系数据库。DAO,数据访问对象。基于COM的面向对象数据库编程模型。是一组基于MircrosoftAccessJet引擎的COM自动化接口。直接与Access/Jet数据库通信,通过Jet引擎也可以与其他数据库通信。效率不高。最初是作为ODB
2、CAPI的抽象,为VisualBasic程序员提供的编程对象。使用ODBCAPI对数据源进行操作。不需要经过Jet引擎,比DAO效率高。OLEDB,对象链接嵌入数据库。未来数据库访问的发展模式。提供COM接口,与其他数据库访问技术相比,具有更好的健壮性和灵活性,更高的容错能力。属于底层访问技术。可以与关系和非关系型数据库进行通信。ADO,ActiveXDataObject。对OLEDB的高层次封装。简化了OLEDB,属于高层的数据库接口。另外同OLEDB相比,能够使用ADO的编程语言更多。ADO提供一个自动化接口,使VBScript和Ja
3、vaScript等脚本语言可以使用ADO。二,ADO访问基础1.引入ADO类型库在Stdafx.h中使用如下指令引入类型库:#import"c:programfilescommonfilessystemadomsado15.dll"no_namespacerename("EOF","adoEOF")根据操作系统的不同,msado*.dll的版本不同,目前最高版本是2.1吧。rename("EOF","adoEOF")是为了防止和别的结束标示重名。在编译过程中不用理会下面的编译警告:warning:unaryminusoperat
4、orappliedtounsignedtype,resultstillunsigned如果不想此警告出现,可以在StdAfx.h文件中加入这样一行代码以禁止此警告:#pragmawarning(disable:4146)对于指定ADO版本//如果使用ADO2.0加入下面代码#import"C:ProgramFilesCommonFilesSystemOleDBmsdasc.dll"no_namespace//如果使用ADO2.1加入下面代码#import"C:ProgramFilesCommonFilesSystemOl
5、eDBoledb32.dll"no_namespace注:ADO2.0或ADO2.1中,如果其中一个编译不成功,则用另一个2.初始化COM库一般中应用程序类初始化函数中初始化COM库,当然也可以在别的地方。只要是在使用之前初始化就可以。AfxOleInit();//初始化COM环境上面是MFC环境下注册COM的方法,如果非MFC环境使用方法如下:CoInitialize(NULL);CoUnInitialize();3.创建Connection对象并连接数据库针对链接数据库的方法主要有两种,静态链接和动态链接。静态链接:_Connect
6、ionPtrm_pConnection;在初始化函数中初始化它。try{hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象if(SUCCEEDED(hr)){hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=test.mdb","","",adModeUnknown);///连接数据库///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于A
7、CCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;}}catch(_com_errore)///捕捉异常{CStringerrormessage;errormessage.Format("连接数据库失败!r错误信息:%s",e.ErrorMessage());AfxMessageBox(errormessage);///显示错误信息}//假设数据库名称test.mdb;数据源为test,下面使用不同的方法连接数据库使用ADO连接ACCESS2000数据库m_pConnection->Ope
8、n("Provider=Mircrosoft.Jet.OLEDB.4.0;DataSource=test.mdb","","",adModeUnknown);使用ADO连接ACCESS97数据
此文档下载收益归作者所有