ADO封装类详解

原创 2012年03月23日 20:27:31

用ADO编程有时候总觉得太过于繁琐,很多步骤应该得到封装。但是MFC没有封装它,网上有很多人都对ADO进行过封装,但是我介绍一个我觉得封装的还比较好的一个版本。这个版本的ADO封装类一共有CConnection,CRecordset,CCommand三个类。这三个类是别人封装的,我觉得封装的还是比较好的。可以到点击打开链接下载。

 

 

 

CConnection类

数据成员

_ConnectionPtr m_pConn 连接智能指针的一个变量
CString m_sErrorMessage; 用CConnection类的成员函数产生的错误的文本,可以用GetErrorMessage()成员函数去获取

上面的数据成员都是被定义成私有成员。而且下面的类的数据成员都是私有的。


成员函数

SetConnectionString 设置连接的字符串,这个函数它有两种形式,字符串可以为CString和char *类型的
GetConnectionString 得到连接的字符串
SetConnectionTimeout 设置连接的产生错误前所等待的最长时间
GetCommandTimeout 得到产生错误前所等待的最长时间
Open 打开一个数据库连接,打开的方式都设置默认值,默认Open的四个可选参数都不传递参数。而是用SetConnectionString的方式,这样代码默认情况下很简洁
Close 关闭一个数据库连接
Cancel

取消Open或者Excute操作。调用这个函数必须Open方法的Options参数必须被设置为adSyncConnect,否则会发生run-time错误,即打开方式为同步打开,同步打开的意思是打开成功函数返回,否则一直等待直到超时。我们这个类Open被设置为默认方式打开,也就是同步方式打开。Execute方法的 Options参数必须被设置为adAsyncExecute或者 adAsyncFetch,否则会发生run-time错误,但是我们这个类中不使用connection的Excute函数执行SQL,还是一律选择用CCommand的Excute函数去执行SQL命令。

Release 释放连接智能指针
GetCursorLocation 得到这个CConnection连接的游标类型,这个类在初始化的时候将连接的游标类型设置为了adUseClient
SetCursorLocation 设置这个连接的游标类型
GetState 得到这个CConnection的状态,是打开的,关闭的,正在执行SQL命令的,正在连接的状态
GetConnection 得到这个连接的成员变量m_pConn。
RollbackTrans 取消当前事务中所有做的任何更改并结束当前事务。
CommitTrans 取消当前事务中所有做的任何更改并结束当前事务。它也可以开始一个新事务
BeginTrans 开启一个事务
GetErrorMessage 得到调用成员函数时发生的异常信息

 

CRecordset类

数据成员

m_sErrorMessage 用CRecordset类的成员函数产生的错误的文本,可以用GetErrorMessage()成员函数去获取
m_pRst 记录集智能指针的一个变量

成员函数

GetAbsolutePosition 得到当前记录集游标当前在第几个序号位置
SetAbsolutePosition 设置当前记录集游标到某一个序号位置
GetRecordCount 得到记录集的数目
Open 打开一个记录集,这个函数也给出了两个形式,也就是对连接对象的不同表示,请参见源码
Close 关闭记录集智
Release 释放记录集智能指针
MoveNext 将记录集游标指向下一个记录,这个函数和下面几个记录集游标的移动函数没有加入在出错的情况下给出出错信息
MovePrevious 将记录集游标指向先前的那一条记录
MoveLast 将记录集游标指向最后一条记录
MoveFirst 将记录集游标指向第一条记录
Move 将记录集游标指向指定的那一条记录
rstEOF() 判断当前游标是否指向最后一条记录,如果是还回TRUE,否则还回FALSE
rstBOF() 判断当前游标是否指向第一条记录,如果是还回TRUE,否则还回FALSE
AddNew 增加记录
Delete 删除当前记录集中某一条记录
Cancel 取消
Update 将当前对记录的改动保存到数据源中
SetInt 改变记录集的某一字段值,并且这个值是int型的。
GetInt 得到某一字段的数据,它还回的数据将会是int类型的。
GetString 得到某一字段的数据,它还回的数据将会是CString类型的。
SetString 改变记录集的某一字段值,并且这个值是CString型的。
GetState 得到记录集的状态

CCommand类

数据成员

m_sErrorMessage 用CCommand类的成员函数产生的错误的文本,可以用GetErrorMessage()成员函数去获取
m_pCmd 命令智能指针的一个变量

成员函数

SetActiveConnection 设置你用的是哪个连接去执行这个命令
SetCommandText 设置你要执行的SQL命令文本
SetCommandTimeout(long time) 设置执行SQL命令的最长时间
ExecuteQuery 执行的命令是查询的SQL语句,它会还回记录集
ExecuteUpdate 执行的命令不会还回记录集,比如像插入,删除类型的SQL语句
Release 释放命令智能指针
Cancel 跟CConnetion的Cancel类似

函数的具体声明和实现,读者可以查阅源码。上面封装的类如果有一些不足,读者也可以根据需求更改源码为自己的成员更好更方便的对用ADO方式对数据库进行操作。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

用C++封装的ADO类

用C++封装的ADO类 作者:刘振海 .H文件 // ADO.h: interface for the CADO class. // ////////////////////////...

VC++下封装ADO类以及使用方法

操作系统:windows 7软件环境:visual studio 2008 、Microsoft SQL 2005本次目的:介绍一个已经封装的ADO类,简单说明怎么导入使用      首先声明一下,这...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

MFC中使用ADO操作各类数据库的封装类,包括MySql、Access、Oracle、MSSql

演示程序可以在此处下载:http://download.csdn.net/detail/php_fly/6033883 开发环境 开发环境:VS2008 注释:部分注释! ...

ADO封装类详解

用ADO编程有时候总觉得太过于繁琐,很多步骤应该得到封装。但是MFC没有封装它,网上有很多人都对ADO进行过封装,但是我介绍一个我觉得封装的还比较好的一个版本。这个版本的ADO封装类一共有CConne...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)