Heim  >  Artikel  >  Datenbank  >  vc如何通过ADO操作Access数据库?

vc如何通过ADO操作Access数据库?

WBOY
WBOYOriginal
2016-06-07 15:04:261250Durchsuche

数据库 的应用在应用程序中有不可缺少的作用,今天就讲解在vc下 如何 通过 ADO 操作 Access 数据库 。 首先引入ADO库的定义文件,引用msado15.dll,这个文件在系统安装盘的program files\common files\system\ado文件夹下,只需将以下代码: #import c:\prog

 

数据库的应用在应用程序中有不可缺少的作用,今天就讲解在vc下如何通过ADO操作Access数据库

 

首先引入ADO库的定义文件,引用msado15.dll,这个文件在系统安装盘的program files\common files\system\ado文件夹下,只需将以下代码:

 

#import “c:\program files\common files\system\ado\msado15.dll” \

 no_namespace \

 rename (“EOF”, “adoEOF”)

 

添加到StdAfx.h下便可。 www.2cto.com

 

再次,便是初始化COM库,这个步骤通常在初始化窗口时实现,代码如下:

 

AfxOleInit();

 

第三步便是利用建立好的连接通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理等。

 

// 定义ADO连接、命令、记录集变量指针

 _ConnectionPtr m_pConnection;

 _CommandPtr  m_pCommand;

 _RecordsetPtr m_pRecordset;

 

数据库Demo.mdb为例,以下代码初始化各指针:

 

m_pConnection.CreateInstance(__uuidof(Connection));// 初始化COM,创建ADO连接等操作

 try               

 {

  // 打开本地Access库Demo.mdb

  m_pConnection->Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb”,”",”",adModeUnknown);

 }

 catch(_com_error e)

 {

  AfxMessageBox(“数据库连接失败,确认数据库Demo.mdb是否在当前路径下!”);

  return FALSE;

 }

 

m_pRecordset.CreateInstance(__uuidof(Recordset));// 使用ADO创建数据库记录集

  // 在ADO操作中建议语句中要常用try…catch()来捕获错误信息,

 // 因为它有时会经常出现一些想不到的错误。

 try

 {

  m_pRecordset->Open(“SELECT * FROM DemoTable”,    // 查询DemoTable表中所有字段

       m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针

       adOpenDynamic,

       adLockOptimistic,

       adCmdText);

 }

 catch(_com_error *e)

 {

  AfxMessageBox(e->ErrorMessage());

 }

 

其次便可进行查询、修改、删除等操作了。

 

请关注   李木空间  www.limou.net   更多MFC知识。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:[转]beego cacheNächster Artikel:比尔•盖茨,谢谢你的这些年