ADO方式操作数据库

  ADO连接SQL server的方式已经在前文MFC使用ADO连接SQL Server 中进行过描述,接下来主要讲讲如何操作数据库。

一、_RecordsetPtr介绍

_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。
通过_RecordsetPtr实例化一个对象,m_pRecordset相当于数据库内容的备份,我们操作m_pRecordset中的内容,然后Update就能改变数据库中的内容。
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recorset));
打开记录集的方法:使用open函数
HRESULT Recordset15::Open(const _variant_t& Source,const _variant_t& ActiveConnection,enum CursorTypeEnum CursorType,enum LockTypeEnum LockType,long Options)
/*
参数:
Source是数据查询字符串。
ActiveConnection是已经建立好的连接(我们需要用Connection对象指针来构造一个_variant_t对象)。
CursorType 光标类型,它是枚举CursorTypeEnum中的一个值。
LockType 锁定类型 它是枚举LockTypeEnum中的一个值
Options 指定Source的类型
光标类型CursorType,可取如下值之一:
adOpenUnspecified=-1 不作特别指定
adOpenForwardOnly=0 默认值,前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动,这种方式可节省资源,提高浏览速度,但诸如BookMark、 RecordCount、AbsolutePosition、AbsolutePage都不能使用。
adOpenKeyset=1 键集游标,采用这种光标的记录集看不到其它用户的新增、删除操作,但对于更新原有记录的操作对你是可见的。
adOpenDynamic=2 动态光标,所有数据库的操作都会立即在用户记录集上反应出来。
adOpenStatic=3 静态游标。它为记录产生一个静态备份,其他用户的新增、删除、更新操作对你的记录集来说是不可见的。

LockType锁定类型,它可以是以下值之一,请看如下枚举结构
enum LockTypeEnum
{
adLockUnspecified=-1,//未指定
adLockReadOnly=1,//只读记录集,默认值。无法更改数据。
adLockPessimistic=2,//悲观锁定方式。只有在调用Update方法时才锁定记录。这是最安全的锁定机制
adLockOptimistc=3,//乐观锁定方式,只有在你调用Update方法时才锁定记录。在此之前仍然可以做数据的更新、插入、删除等操作
adLockBatchOptimistic=4 乐观分批更新。编辑时记录不会锁定,更改、插入及删除是在批处理模式下完成。
}

关于光标和锁定类型,对于一般用户,建议您只作简单了解,后面将进一步进行解说。

Options可以取如下值之一:
adCmdText: 表明CommandText是文本命令。
adCmdTable:表明CommandText是一个表名。
adCmdProc:表明CommandText是一个存储过程。
adCmdUnknown:未知。
*/

  Source中写sql语句,实现对操作,如查询
  

 GLsql.m_pRecordset.CreateInstance("ADODB.Recordset"); 
 GLsql.m_pRecordset->Open("select * from goodsinfo" , _variant_t((IDispatch*)GLsql.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
操作完成后要记得释放指针
GLsql.m_pRecordset->Close();
GLsql.m_pRecordset=NULL;
本文参考了[夜雨阑珊](http://www.cnblogs.com/fickleness/)的博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VC和ADO(ActiveX 数据对象)是Windows编程中常用的两个组件。 VC(Visual C++)是微软推出的一种集成开发环境(IDE),用于开发Windows平台下的应用程序。它基于C++语言,提供了丰富的库和工具,可以方便地进行图形用户界面(GUI)编程、多线程编程等。在VC中,可以通过调用不同的API函数来实现与数据库的交互操作,但这需要编写大量的底层代码,操作繁琐。 ADO是微软推出的一种数据访问技术,用于连接和操作各种不同类型的数据库ADO提供了一套简单而灵活的API,可以通过其提供的接口来进行数据库的连接、数据的查询、插入、更新、删除等操作,不需要编写大量的底层代码,简化了数据库操作过程。 在VC中,可以使用ADO数据库操作类来访问和操作数据库ADO数据库操作类是一个封装了ADO接口的类库,封装了与数据库的连接、查询、更新等操作,提供了一组易于使用的函数和方法,方便开发人员进行数据库操作。使用ADO数据库操作类,可以大大减少开发工作量,简化了数据库操作的流程。 通过将ADO数据库操作类与VC相结合,开发人员可以方便地使用VC来创建一个图形界面的应用程序,并使用ADO数据库操作类连接和操作数据库,实现数据的持久化和交互。这样可以快速开发出高效、稳定的数据库应用程序,提高开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值