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环境
邵盛松 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环境
相关文章推荐
- VC使用ADO对象控制ACCESS数据库的访问-举例
- VC使用ADO对象控制ACCESS数据库的访问
- VC++下使用ADO访问Access数据库完整篇
- VC使用ADO对象连接一个Access数据库
- VC++下使用ADO访问Access数据库完整篇
- vc 使用ado访问access数据库
- VC++下使用ADO访问Access数据库完整篇
- VC++下使用ADO访问Access数据库完整篇
- VC++中使用ADO访问SQL Server数据库与Access数据库的不同之处总结
- VC++中使用ADO方式操作ACCESS数据库
- VC++中使用ADO方式操作ACCESS数据库
- 在VC++.NET中使用ADO访问数据库
- VC下利用ADO访问Access数据库(Use ADO)(转载)
- 使用ADO.NET访问数据库,类和对象概述
- VC++使用ADO开发ACCESS数据库[结尾]
- 解决VC++在WIN7下使用ADO方式连接ACCESS数据库到XP不能运行的问题
- 在C#中使用ADO.Net部件来访问Access数据库
- VC++中使用ADO方式操作ACCESS数据库(转载)
- VC中使用ADO访问数据库技术程序实现方法
- VC++中使用ADO方式操作ACCESS数据库