MFC中使用ADO访问数据库

这篇博客介绍了如何在MFC应用中使用ADO来访问数据库,相较于ODBC的CDatabase和CRecordSet,作者更倾向于ADO。ADO涉及的三个关键智能指针包括_ConnectionPtr、_CommandPtr和_RecordsetPtr。为了使用ADO,需要在项目中导入msado15.dll库,并进行初始化。在MFC中,这通常通过AfxOleInit()实现;在非MFC环境中,使用CoInitialize(NULL)和CoUnInitialize()。博客还展示了建立数据库连接的代码示例,指出创建实例(CreateInstance)是避免错误的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前,我所掌握的VC程序访问数据库有两种方法,一种是用ODBC,一种是ADO

ODBC访问数据库主要是通过MFC中的两个类,一个是CDatabase,一个是CRecordSet。这种访问方式需要设置数据源,我始终觉得不灵活,所以我比较喜欢使用ADO

ADO有三个智能指针:_ConnectionPtr_CommandPtr_RecordsetPtr

在使用ADO之前,必须加载ADO,加载的方法是,在StdAfx.h文件中加入:

#import "c:/program files/common files/system/ado/msado15.dll" /

   no_namespace /

   rename("EOF","adoEOF")

再在适当的地方添加初始化函数:AfxOleInit()此函数在MFC中使用,在非MFC中使用另外两个函数:

CoInitialize(NULL);

CoUnInitialize();

初始化工作完成以后就可以连接数据库。代码如下:

  m_pConnection.CreateInstance(_uuidof(Connection));

  try

  {    

m_pConnection->Open("

Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=ado.mdb","","",adModeUnknown);

  }

  catch(_com_error e)

  {

     AfxMessageBox("no");

  }

之后就可以操作数据库了。以前出错的原因找到了,是因为没有创建实例,也就是没有CreateInstance

 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值