您的位置:首页 > 数据库

VC使用ADO对象控制ACCESS数据库的访问

2009-02-28 13:14 225 查看
VC使用ADO对象控制ACCESS数据库的访问
邵盛松 2009-2-28
以下代码没有进行封装,Carlos Antollini已经对ADO对象进行封装,他的代码可以在程序中可直接调用.
新建一个MFC对话框
1初始化代码解释
使用ADO对象,就要引用使用msado15.dll中的变量和函数
在stdafx.h文件中添加对DLL引用
#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "EndOfFile")
no_namespace,这是告诉编译器该类不在一个单独的名字空间中,使用no_namespace意味着你不需要在初始化变量的时候引用名字空间。因为去掉了命名空间,为了防止ADO中的EOF和文件操作中的EOF产生冲突,所以将ADO中的EOF命名为EndOfFIle.

在对话框初始化函数中添加以下代码
::CoInitialize(NULL);//初始化COM环境
_ConnectionPtr m_pConn;//连接对象指针
_RecordsetPtr m_pRs;//记录集对象指针
m_pConn.CreateInstance(__uuidof(Connection));//实例化连接对象
m_pRs.CreateInstance(__uuidof(Recordset)); //实例化记录集对象

msado15.tlh文件中的声明如下
_COM_SMARTPTR_TYPEDEF(_Connection, __uuidof(_Connection));
_COM_SMARTPTR_TYPEDEF(_Recordset, __uuidof(_Recordset));

m_pConn->Open(m_pConn->ConnectionString,_T(""),_T(""),adConnectUnspecified);//这句只要是对数据库进行连接.
m_pConn->ConnectionString是数据库的连接字符串,adConnectUnspecified表示同步打开连接.也可以是adAsyncConnect异步打开连接
同步的含义是:调用open之后等待连接打开之后再执行后面的代码
异步的含义是:调用open之后立即返回继续执行后面的代码
2数据库操作

数据库连接之后,就可以操作表,当表打开以后就可以操作记录了
m_pRs->Open(表名,m_pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTable);
open参数说明,这里是记录集的open,不是连接的open

GetInterfacePtr()是指定记录集对象使用的连接,m_pConn.GetInterfacePtr()就是刚才打开的连接.
adOpenDynamic是游标的类型,这里是动态游标
adLockOptimistic是锁定类定,这里是开放的锁定
adCmdTable是指定命令类型这里是表名.
对于一个表可以有以下操作
addNew,delete,GetRows,update等
3关闭数据库

if(m_pConn->State)
m_pConn->Close();//关闭数据库连接
m_pRs=NULL;//释放记录集对象指针
m_pConn=NULL;//释放连接对象指针
::CoUninitialize();//释放COM环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: