数据库的应用在应用程序中有不可缺少的作用,今天就讲解在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下便可。
再次,便是初始化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知识。
原文链接:http://www.limou.net/?p=582 |