vcmfcsqlado数据库访问技术

vcmfcsqlado数据库访问技术

ID:35515584

大小:113.00 KB

页数:12页

时间:2019-03-25

vcmfcsqlado数据库访问技术_第1页
vcmfcsqlado数据库访问技术_第2页
vcmfcsqlado数据库访问技术_第3页
vcmfcsqlado数据库访问技术_第4页
vcmfcsqlado数据库访问技术_第5页
资源描述:

《vcmfcsqlado数据库访问技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VC++MFCSQLADO数据库访问技术使用的基本步骤及方法分类: VC/MFC之数据库2010-10-2608:44 1957人阅读 评论(0) 收藏 举报sqlmfc数据库vc++null存储 1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现:[cpp] viewplaincopy1.#import "c:/pr

2、ogram files/common files/system/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")   【注意,在MFC中路径要用"/"或者"//"】其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一

3、个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename("EOF","adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。   2.其次,在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结

4、束时关闭COM的操作,语句如下所示:[cpp] viewplaincopy1.AfxOleInit();      3.接着,就可以直接使用ADO的操作了。我们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍:_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记

5、录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。    _CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_Co

6、nnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。    _RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr

7、执行存储过程和SQL语句。特别声明:如果是MFC程序,则初始化ado组件就不需要用CoInitialize(NULL),只需要在**App::InitInstance()函数中调用AfxOleInit();即可:例如:[cpp] viewplaincopy1.BOOL CMyAdoTestApp::InitInstance()  2.{  3.if(!AfxOleInit())//这就是初始化COM库  4.{  5.AfxMessageBox(“OLE初始化出错!”);  6.return FALSE;  7.}  创建一个对话框程序。新建一个名为ADOCon

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。