ad

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_1.3 声明并初始化 Recordset 对象

网友投稿 131 2023-11-07

【摘要】 本书摘自《Excel VBA+SQL数据管理与应用模板开发》一书中第1章,第3节,韩小良著。

1.3 声明并初始化 Recordset 对象

在建立了与数据库的连接后,就可以声明并初始化一个新的 Recordset 对象。打开该对象, 就可以查询、浏览、编辑、删除数据表数据等。

声明和初始化一个新的 Recordset 对象并打开该对象的语句如下:

《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_1.3 声明并初始化 Recordset 对象

或者直接使用下面的语句声明并初始化 Recordset 对象。

Dim rs As New ADODB.Recordset

如果要进行多次查询,那么就需要使用第一种声明方法。如果仅做一次查询,则使用第

二种声明方法即可。

在本书中,约定 rs 表示 Recordset 对象变量。

Recordset 对象的游标类型和锁定类型

1.游标类型

使用记录集时,记录集对象的游标类型 (CursorType) 决定了不同的数据获取方式。

游标是用来控制记录定位、数据可更新性,以及决定是否可见其他用户对数据库所做更 改的数据库元素的,不同的设置各有一定的使用范围。

ADO 中定义了以下4种不同的游标类型。

(1)动态游标 (adOpenDynamic): 是功能最强的游标,可以看到其他用户所做的添加、 更改和删除,支持 Recordset 对象中的所有移动类型。

(2)键集游标 (adOpenKeyset): 其行为类似动态游标,不同的只是它禁止查看其他用户 添加的记录,并且禁止访问其他用户删除的记录。其他用户所做的数据更改依然可见。

(3)静态游标 (adOpenStatic): 提供记录集的静态副本,可用来查找数据或生成报告; 支持 Recordset 中的所有移动类型。其他用户所做的添加、更改或删除将不可见。

(4)仅向前游标 (adOpenForwardOnly): 只允许在 Recordset 中向前滚动。其他用户所做 的添加、更改或删除将不可见。当只需要对Recordset进行一次传递时,仅向前游标在性能 上有明显的优势。

2.锁定类型

锁定类型 (LockType) 将影响 Recordset 对象的并发事件的控制处理方式,还决定了记录 集的更新是否能批量进行。ADO 中定义的锁定类型有以下4种。

(1)开放式批更新 (adLockBatchOptimistic): 当编辑记录时不会被锁定,修改、插入及 删除是在批量处理的方式下进行的,只有在批处理更新时才锁定。

(2)开放式 (adLockOptimistic): 逐个记录开放式锁定的方式,数据提供者只是在调用 Update 方法时锁定记录,在此之前可以对当前记录进行各种更新操作。

(3)保守式 (LockPessimistic): 逐个记录保守式锁定的方式,数据提供者要确保记录编 辑成功,通常在编辑时立即在数据源锁定记录。这是一种最安全的方式,同时也会降低并发 程度。

(4)只读 (LockReadOnly): 记录集中的记录是只读的,无法改变数据。Recordset 对象的常用属性

Recordset 对象有很多属性,用来对数据库进行查询、编辑等操作。下面介绍 Recordset 对象的一些常用属性。1.RecordCount 属性

RecordCount 属性返回LongLong值 (Excel 2010以前版本是Long值),表示 Recordset 对 象中的记录数目。

例如,rs.RecordCount 的结果就是查询结果的记录数目。

在使用 RecordCount 属性时,要特别注意Recordset 对象的游标类型将影响是否能确定记 录的数目。对于仅向前游标, RecordCount 属性将返回1;对于静态或键集游标,将返回实际 计数;而对于动态游标,则返回1或实际计数。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_3.2 基本查询方法与示例
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_2.4.3 访问者模式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×