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类似

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值