欢迎来到天天文库
浏览记录
ID:25141773
大小:65.50 KB
页数:8页
时间:2018-11-18
《ado在vc++中的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ADO在VC++中的应用摘要介绍了ADO的特点以及在VC++中如何通过ADO开发数据库应用程序。ADO是开发访问OLE数据库应用程序所使用的一种数据库访问组件,是一种可以访问各种数据类型的连接机制。它不仅可以通过OLEDB、ODBC访问数据库,还可以使用几乎任何一种数据源,如SQLServer、Oracle、Access、Excel和文本文件、图形文件等。ADO基于OLEDB,提供统一的数据访问接口,使用简单,容易掌握。关键词ADO;数据库;应用程序的开发;VC++1引言ADO是Microsoft公司新的数据访问技术
2、,由于它是基于OLEDB接口上实现的对象,其性能和易用性都达到了极佳水平。ADO并不与数据库直接打交道,而是要通过ODBC驱动程序或OLEDB连接字符串来操作数据库。ODBC或OLEDB是应用程序与数据库进行连接通信的接口,其作用是将特定类型数据库中的数据变换为标准而能统一操作的数据源。利用ADO对象并通过ODBC或OLEDB,可以实现对任意数据库的存取和访问。ADO模型包括7个对象,主要对象有3个:Connection、mand和Recordset,可以被独立创建和释放。此外,还包括其他4个集合对象:Fields、
3、Errors、Parameters和Properties。一个典型的ADO应用程序使用Connection对象建立与数据源的连接,然后用一个mand对象给出对数据库操作的命令,如插入数据或者查询数据等,而Recordset用于对结果集进行维护或者浏览等操作。其中mand命令所使用的语言与低层所对应的OLEDB数据源有关,不同的数据源可以使用不同的命令语言,对于关系数据库,通常使用SQL作为命令语言。2VC++中使用ADO开发数据库应用程序一般步骤在VC++中使用ADO开发数据库应用程序一般包括以下步骤:(1)初始化库
4、,引入ADO库定义文件。(2)用Connection对象连接数据库。(3)利用建立好的连接,通过Connection、mand对象执行SQL命令,或利用Recordset对象取得结果记录集进行处理、查询。(4)使用完后关闭连接,释放对象所占的资源。3ADO使用实例3.1引入ADO动态链接库,初始化库环境在使用VisualC++的MFC编程时,MFC并没有提供对ADO的封装类,能够支持ADO编程的是ADO的动态链接库文件msado*.dll,“*”位置的数字代表ADO库的版本。引入该文件的方法是在stdafx.h头文件
5、中,添加如下代码:#import”c:programfilesmonfilessystemadomaado15.dll”o_namespacerename(“EOF”,”adoEOF”)这些命令声明在工程中使用ADO,但不使用ADO的名字空间,并为了避免冲突,将EOF改名为adoEOF。ADO是基于技术的,所以,在应用程序调用ADO前,必须初始化库环境。ADO使用结束后需要关闭库,释放初始化加载的动态链接库。::CoInitialize(NULL);//初始化库::CoUninitialize();//
6、清除库3.2创建ADO与数据库的连接使用Connection对象打开连接,在引入的动态链接库生成的定义文件(msado15.tlh)中Open方法的定义如下:HRESULTOpen(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPass_pConnection;//连接对象智能指针//初始化数据库连接HRESULThr;try{hr=m_pConnection.CreatEinstance(_uuidof(Connection));//实例化连接对象if(SUCCEEDED
7、(hr)){//设置连接串属性为UDL文件m_pConnection->ConnectionString=”FileName=name.udl”;//设置等待连接打开的时间为20sm_pConnection->ConnectionTimeout=20;hr=m_pConnection->Open(””,””,””,adConnectUnspecified);if(FAILED(hr)){AfxMessageBox(“Openfail”);ReturnTRUE;}}else{AfxMessageBox
8、(“creatEInstanceofConnectionfail”);returnTRUE;}}catch(__errore){//给出异常信息_bstr_tbstrSource(e,Source());_bstr_tbstrDescription(e.Description());AfxMessageBox(bstrSource+bstrDe
此文档下载收益归作者所有