VC中使用MFC通过ADO连接数据库_第1页
VC中使用MFC通过ADO连接数据库_第2页
VC中使用MFC通过ADO连接数据库_第3页
VC中使用MFC通过ADO连接数据库_第4页
VC中使用MFC通过ADO连接数据库_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MFC中用ADO连接数据库(2012-04-12 15:50:06)标签:mfc杂谈分类:MFC一、数据库操作准备1、导入ADO动态链接库在丄程的stdafx. h中加入如下语句:#import ,zc:program filescommon filessystemadomsadol5dllno_namespacerename(EOF, adoEOF)这一语句有何作用呢?其最终作用同我们熟悉的include类似,编译的时候系统会 为我们生成msadol5. tlh和msadol5. tli两个C+头文件来定义ADO库,即加载 ADO 动态库(msadol5. dll)。其中,no_namesp

2、ace表明不使用命名空间,rename (Z/EOF,Z, adoEOF)表明把ADO中用到的EOF改为adoEOF,防止发生命名冲突。注意:该代码需要在一行中完成,如果写成两行或者多行,行末要加上“” 符号,表示把这儿行看成一行,如本例。2、初始化OLE/COM库环境在基于MFC的应用里,初始化OLE/COM库环境的一个比较好的位置是在应用 类的Initlnstance成员函数中,而且直接使用AfxOlelnit,在退出应用时,该函 数也负责COM资源的释放,将此函数添加在Initlnstance中的如下位置:BOOL CExpApp:Initlnstdnce()AfxEnableContr

3、olContainer();/初始化OLE DLLsif (!Afx01eInit ()AfxMessageBox (初始化 OLE DLL 失败! ”);Return FALSE;说明:也可以在Initlnstance中使用:Coinitialize初始化OLE/COM库环 境,但须在Exitlnitlnstance中使用:CoUninitialize释放占用的COM资源,显 然使用AfxOlelnit更为方便。3、连接数据库在DocWiew程序中,通常在应用类(App类)中进行数据库的连接。1) 声明一个Connection指针_ConnectionPtr m_pConnection;注:

4、ADO最重要的三个对象有三个:连接对象(Connection)、命令对象 (Command)和记录集对象(RecordSet)。在使用这三个对象的时候,需要定义与 之相对应的智能指针,分别为ConnectionPtr、_CommandPtr _RecordsetPtr由上述ConnectionPtr指针的使用步骤可知,和C+中的类指针使用方法一 样,智能指针也要先定义指针变量、创建其实例(实例化),然后就可以调用它的 方法和属性。不同的是,该智能指针最后是自动进行内存释放的。所有的智能指针都是基于_com_ptr_t模板类的,该类封装了 IUnknow接口的 3个方法:Query Interf

5、ace、Addref和Release。它具有自动计数的机制,即在构 造对象时,自动为该对象计数加1。析构对象时,自动调用Release方法。(即该 类型的指针在使用后不需要手动释放内存)(但需要调用Close方法,关闭连接或 者记录集)所以智能指针会使代码更加简洁并且不易出错。2) 创建Connection对象m_pConnection. Createlnstance(_uuidof(Connection);m_pConnection. Credteinstance(ADODB. Connection);上述两种方法均可。注意:上面调用_ConnectionPtr接口指针的方法Createln

6、stance时,用的是”而非3) 设置连接字符串,以便指定需要的连接3. 1)使用JET数据库引擎实现对Acess2000类型的数据库info, mdb的连接CString strSQL二Provider二Microsoft. Jet. OLEDB. 4. 0;DataSource二info. mdb;User ID=admin:Passward=;,z:或者CString strSQL二_T(Provider二Source=info. mdb;User ID=admin: Passward=:,z);3.2)使用OLE DB提供者实现对SQL Server的标准安全连接串strConnect

7、二_T(Provider二sqloledb;Data Source=MyServerName;Initial Catalog=MyDateBdseame;User ID=MyUserName;Password=MyPassword;);例程:strConnection二Provider二SQLOLEDB;DataSource二local;InitialCatalog=DDRent DB_Data3F;,/User ID二sd;Password二820415;m_pConnection-0pen(_bstr_t)strSQL, 、adModeUnknown);或者是在此处不设置User ID和P

8、assword,而直接在Open的第2、3个参数 中设置。strConnection=,zProvider=SQLOLEDB;DataSource=local;InitialCatalog=DVDRentDB_Data. MDF;m_pConnection-0pen(_bstr_t)strSQL,820415, adModeUnknown);注意:上面设置连接字符串的时候,如果过长需要分行时,则每一行都要加 上双引号,在最后加上分号即可。如果是本地服务器,则DataSource=local或本地服务器名均可若数据库没有设置密码,在连接字符串中可以将其省略,但User ID不能省若数据库和程序文

9、件不在同一文件夹下,直接写数据库名即可,在 InitialCatalog中不需加上该数据库的存储器地址3. 3)使用OLE DB提供者实现对远程SQL Server的标准安全连接串strConnect=_T (/zProvider=sqloledb;Network Library=DBMSSOCN;z,Data Source二130.120. 110. 001, 1433;Initial Catalog=MyDateBasedme;User ID=MyUserName;Password=MyPassword;);4) 、使用m_pConnection的Open方法实现对数据库的连接在ADO的操

10、作中建议使用try. catch ()来捕获错误信息,因为它有时会经 常出现一些意想不到的错误trym_pConnection-Open( (_bstr_t) strSQL, ,” z/, adModeUnknown);catch(_com_error e)/捕捉异常CString strError;strError. Format (连接数据库发生异常! r n错误信e. ErrorMessage();AfxMessageBox (errormessage) :/显示错误信息4、关闭连接般重载App类的Exitlnstace()函数实现调用m_pConnection的Close方法关闭连接即可m_pConnection-Close();m_pConnection二NULL;注意:由于初始化COM库调用的是AfxOlelnit,这种方法初始化COM库的优 点就在于资源的释放也是自动进行的,所以不必担心资源泄漏的问题。二、数据库操作ADO库中包含的三个基本接口为ConnectionPtr接口、_CommandPtr接口、 _RecordsetPtr 接口。1、 _ConnectionPtr 接口该接口返回一个记录集或一个空指针。通常用它来创建一个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论