在ADO程序中,记录集(Recordset)对象代表一个表的记录集合或者是一个SQL命令或存储过程执行结果。简单地说:记录集实际上缓存了从数据库获得的记录,应用程序可以从记录集中获得每条记录的字段。

Recordset对象的常用属性和方法:

RecordCount属性:返回Recordset对象中记录的当前数目

BOF,EOF属性:BOF指示当前记录位置的第一记录的前一个,EOF指示当前记录的最后一个记录的后一个。如果打开没有记录的Recordset对象,则BOF,EOF都为true,如果打开的记录集中包含记录,则BOF,EOF都为false

AbsolutePosition属性:指定Recordset对象当前记录的序号位置

ActiveConnection属性:该属性指定Recordset当前所属的Connection对象。

Open方法定义:

HRESULT Open (const _variant_t &Source,
const _variant_t &ActiveConnection,
enum CursorTypeEnum CursorType,
enum LockTypeEnum LockType,
long Options)

Source参数:为记录源,它可以是下列内容之一:Command对象变量,SQL语句,存储过程,表名或完整的路径名。

ActiveConnection参数:对应于ActiveConnection属性,指定在哪个连接中打开该记录集,常用_ConnectionPtr.GetInfaceterPtr()指定

CursorType参数:指定打开Recordset时使用的游标,它的取值可以是CursorTypeEnum枚举型中的常量,adOpenStatic(静态游标),adOpenDynamic(动态游标),adOpenForwardOnly(默认,前向游标),adOpenKeyset(键集游标).

LockType参数:指定打开记录集时应该使用的锁定类型,LockType取值为LockTypeEnum枚举型的值,它的取值为

adLockReadOnly:默认值,只读:不能改变数据;
adLockPessimistic:保守式锁定(逐个),数据提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录
adLockOptimistic:开发式锁定(逐个),数据提供者使用开放式锁定,只在调用Update()方法时才锁定记录
adLockBattchOptimistic:开发式批更新:用于批更新模式

Options参数:该参数类型为长整型值,它指定参数Source的种类,Options的种类有如下几种:

adCmdText:指示提供者应该将Source作为命令的文本定义来计算
adCmdTable:指示ADO生成SQL查询以便从在Source中命名的表中返回所有行
adCmdTableDirect:指示提供者更改从Source中命名的表中返回所有行
adCmdStoredProc:指示提供者应该将Source视为存储过程
adCmdUnknown:指示Source参数的命令类型为未知。

MoveFirst,MoveLast,MoveNext,MovePrevious方法:这些方法可以对记录集的游标进行移动操作

GetCollect方法:用于取得字段的值,参数Index可以是字符串表明字段名,也可以是整型数,表示字段的序号。

_variant_t  GetCollect(const _variant_t &Index);

PutColloct方法:用于向记录字段中写入值,pvar参数表示要写入的变量值

void PutCollect (const _variant_t &Index,const _variant_t &pvar);

AddNew()方法:使用该方法创建和初始化新记录,该方法可以使用参数,在参数中指定要添加的新纪录,也可以不使用参数,而在后面使用PutCollect方法修改新记录,使用Update函数保存新纪录

Update()方法:该方法保存从调用AddNew方法以来或更改现有记录中的任何字段值以来所做的所有更改。

使用记录集的具体方法:

定义_RecordsetPtr型变量,然后通过它调用Recordset对象的Open方法,即可打开一个数据集,然后可以使用GetCollet方法获取记录的字段值,使用Move系列函数实现记录集的遍历,最后关闭记录集。

使用集合Fields获取字段值

_variant_t var=pRecordset->Fields->GetItem(long(0))->GetValue();

ADO对象之Recordset用法总结:相关推荐

  1. 应用程序利用ADO对象访问数据库

    1.已创建MySQL数据库employeedb,数据库中有如下所示的employeetb表. 2.在使用ADO对象之前,必须在工程的Stdafx.h文件里用直接引入符号#import引入 ADO库文件 ...

  2. python datetime.date 和数据库date_Python成为专业人士笔记-date 对象、time 对象及datetime用法深度剖析...

    "专业人士笔记"系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 将字符串解析为对应时区的datetime对象 ...

  3. C++对象数组与对象指针的用法【C++初学面向对象编程】

    文章目录 一.对象数组 二.对象指针 一.对象数组 1.概念 对象数组本质上就是:数组中每一个元素都是同一个类的对象. //定义对象数组(装有3个对象的数组) Box aa[3]={Box(1, 1, ...

  4. easy excel date 类型解析报错_Python成为专业人士笔记-date 对象、time 对象及datetime用法深度剖析...

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 将字符串解析为对应时区的datetime对象 ...

  5. Request对象的一般用法

    Request是HttpRequest的派生类,主要的工作是从客户端获取信息,包括浏览器的种类,用户输入表单中的数据,Cookies中的数据和客户端认证等.在说Request对象的具体用法之前,先来说 ...

  6. java ado recordset_ADO之Recordset对象用法

    本文摘自:https://blog.csdn.net/hfchenle/article/details/51832973 在ADO程序中,记录集(Recordset)对象代表一个表的记录集合或者是一个 ...

  7. ADO 对象的游标类型(CursorTypeEnum)游标位置(CursorLocation)锁定方法(LockTypeEnum)的超详解析以及使用方法

    1.首先什么是游标? 这里引用微软官方的ADO API中的一段话来解释(机器翻译太烂,添加个人翻译) 关系数据库中的操作会对整个行集起作用. 由 SELECT 语句返回的行集包括满足该语句的 WHER ...

  8. java 远程共享_【原创】(扫盲)远程共享对象SharedObject的用法

    学习fcs也有差不多一个月了,感觉最有特色的东西还是SharedObject. 今天就写个基本的教程关于它,第一次写教程(以前都是看教程-_-),手心都出汗了,心怕写得有错误导读者就惨了 , 斑竹有空 ...

  9. flashcom中远程共享对象SharedObject的用法

    觉得这篇文章比较好,转载回来. 学习fcs也有差不多一个月了,感觉最有特色的东西还是SharedObject. SharedObject有不少东西,本地操作就不说了(相信很多人没接触fcs也用过);就 ...

最新文章

  1. python asyncio与aiohttp_python链家网异步IO爬虫,使用asyncio、aiohttp和aiomysql
  2. 记一次递归在我项目中所发挥的作用
  3. WCF系列学习笔记4之绑定详解
  4. redis——Redis中的LRU算法改进
  5. 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
  6. linux网卡为啥叫ens160这些,centos8将网卡名ens160修改为eth0
  7. matlab 支撑集,基于OMP算法的快速压缩感知图像重构
  8. [置顶] 高效前端优化工具--Fiddler入门教程
  9. java工程师考华为证有用吗_华为初级认证网络工程师有什么用?大学生适合考吗?...
  10. imagenet标签
  11. 华为eSight网络监控平台配置短信功能说明
  12. uniapp实现微信公众号登录获取openid
  13. sdlc esd oracle,SDLC-PCIE高速同步串口卡
  14. win服务器系统无法切换输入法,Win8系统无法切换输入法如何解决?
  15. “阿里/字节“大厂自动化测试面试题一般会问什么?以及技巧和答案
  16. OSWE 尾篇 考试的方法论
  17. 笔记|角度传感器angular transducer
  18. RealDWG加载DWG文件
  19. java.io.IOException: Response data error, expect Throwable, but get null
  20. AT91SAM926x开发全流程

热门文章

  1. WebDAV之葫芦儿·派盘+飞傲音乐
  2. js replace方法
  3. Assembly language
  4. STM32通过串口进入和唤醒停止模式
  5. MFQPPDCS测试分析和测试设计框架l学习记录
  6. jquery鼠标悬停事件hover()
  7. 热修复的两个框架Bugly+Sophix
  8. 时序分析 26 - 时序预测 Prophet包初探
  9. java类加载过程中是线程安全的
  10. 麦肯锡:重新审视自动驾驶汽车基础设施