流年逝水

不想写程序的程序员

ADO封装类详解

用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方式对数据库进行操作。

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liunian17/article/details/7388604
上一篇指针的强制类型转换思考
下一篇查看字符串的二进制形式
想对作者说点什么? 我来说一句

ADO封装类(完整很好用)

2010年08月29日 3KB 下载

ADO操作数据库强大封装类

2013年11月06日 420KB 下载

没有更多推荐了,返回首页

关闭
关闭