欢迎来到天天文库
浏览记录
ID:51674246
大小:20.75 KB
页数:8页
时间:2020-03-14
《VC++下使用ADO访问Access数据库完整篇.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VC++下使用ADO访问Access数据库完整篇2009年10月18
2、分类:编程开发
3、3条评论
4、标签:VisualStudio这次先整理一下ADO的全套流程方便有类似需求的网友参考。实际上,根据天缘的经验,接口类编程只需要遵守人家的约定就可以了,很多做软件的网友也都是忙的很,没有时间一一深究。1、在StdAfx.h中引入ADO类支持方法是在StdAfx.h中增加下面两句话:#include//如果需要则添加本句#import"c:programfilescommonfilessystemado
5、msado15.dll"no_namespacerename("EOF","adoEOF")2、初始化COM环境在MFC中可以用AfxOleInit()或CoInitialize(NULL),该函数一般放在InitInstance()历程里。非MFC使用用CoInitialize(NULL)。卸载COM环境使用CoUnInitialize(),一般放在主程序的析构函数里。这样我们就会三个指针可用:_ConnectionPtr、_RecordsetPtr和_CommandPtr,分别代表:_ConnectionPtr接口返回
6、一个记录集或一个空指针,通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,对于要返回记录的操作通常使用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,用_RecordserPtr则不需要。_RecordsetPtr指针是一个记录集对象。可以对记录集提供了更多的控制功能。它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是
7、使用已经创建了数据库连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。_CommandPtr指针接口返回一个记录集。CommandPtr提供了一种简单方法来执行返回记录集的存储过程和SQL语句。可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。一次或少量数据库访问操作,一般是直接使用连接串,如果需要频繁访问数据库,涉及返回多个记录集,那么,建议同_RecordsetPtr用法一样,使用全局数据库连接后,再使用_Comman
8、dPtr接口执行存储过程和SQL语句。各指针的定义方法:_ConnectionPtrm_pConnection;_RecordsetPtrm_pRecordset;_CommandPtrm_pCommand;3、连接、关闭数据库1、连接数据库示例连接ACCESS,以昨天的FavorMan为例。 ::CoInitialize(NULL);//数据库操作前先初始化COM环境 CStringstrSQL; //配置初始连接串 strSQL="Provider=Microsoft.Jet.OLEDB.4.0;Dat
9、aSource=blogurl.mdb;"; strSQL=strSQL+"Provider=Microsoft.Jet.OLEDB.4.0;"+"DataSource=blogurl.mdb;"+ "JetOLEDB:DatabasePassword="+//str为上面读到数据库路径信息! DB_PASSWRD_STRING+";"+ "PersistSecurityInfo=False;"; //注意一定需要输入四个\\才能表示"\" //如果单独输入,必须形式为"\
10、\Abc\db\blogurl.mdb"格式! //--连接数据库----------------- HRESULThr; try { hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr)) { hr=m_pConnection->Open((_bstr_t)strSQL,"","",adModeUnknown);///连接数据库
11、 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; } } } catch(_com_errore)///捕捉异常 { CString
此文档下载收益归作者所有