ADO Recordset 对象
Recordset 对象
ADO Recordset 对象用于保存数据库表中的一组记录。Recordset 对象由记录和列(字段)组成。
在 ADO 中,这个对象是最重要也是最常用的,用于操作数据库数据。
ProgID
set objRecordset=Server.CreateObject("ADODB.recordset")
当您首次打开 Recordset 时,当前记录指针将指向第一条记录,并且 BOF 和 EOF 属性为 False。如果没有记录,则 BOF 和 EOF 属性为 True。
Recordset 对象支持两种类型的更新:
- 即时更新 - 调用 Update 方法后,所有更改将立即写入数据库。
- 批量更新 - 提供程序将缓存多个更改,然后使用 UpdateBatch 方法将它们发送到数据库。
在 ADO 中定义了 4 种不同的游标类型
- 动态游标 - 允许您查看其他用户添加、更改和删除的记录。
- 键集游标 - 类似于动态游标,但不能查看其他用户添加的记录,并且阻止访问其他用户已删除的记录。其他用户对数据的更改仍然可见。
- 静态游标 - 为您提供记录集的静态副本,用于查找数据或生成报告。其他用户添加、更改或删除的记录将不可见。这是在打开客户端 Recordset 对象时唯一允许的游标类型。
- 向前滚动游标 - 仅允许您向前滚动 Recordset。其他用户添加、更改或删除的记录将不可见。
可以通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标类型。
注意:并非所有提供程序都支持 Recordset 对象的所有方法或属性。
属性
属性 | 描述 |
---|---|
AbsolutePage | 设置或返回一个值,该值指定 Recordset 对象中的页码 |
AbsolutePosition | 设置或返回一个值,该值指定 Recordset 对象中当前记录的序号位置 |
ActiveCommand | 返回与 Recordset 关联的 Command 对象 |
ActiveConnection | 如果连接已关闭,则设置或返回连接的定义;如果连接已打开,则设置或返回当前的 Connection 对象 |
BOF | 如果当前记录位置在第一条记录之前,则返回 True,否则返回 False |
Bookmark | 设置或返回一个书签。书签会保存当前记录的位置 |
CacheSize | 设置或返回可以缓存的记录数 |
CursorLocation | 设置或返回游标服务的位置 |
CursorType | 设置或返回 Recordset 对象的光标类型 |
DataMember | 设置或返回 DataSource 属性引用的对象中要检索的数据成员的名称 |
DataSource | 指定一个包含要表示为 Recordset 对象的数据的对象 |
EditMode | 返回当前记录的编辑状态 |
EOF | 如果当前记录位置在最后一条记录之后,则返回 True,否则返回 False |
滤镜 | 设置或返回 Recordset 对象中数据的过滤器 |
Index | 设置或返回 Recordset 对象当前索引的名称 |
LockType | 设置或返回一个值,该值指定在 Recordset 中编辑记录时使用的锁定类型 |
MarshalOptions | 设置或返回一个值,该值指定要返回到服务器的记录 |
MaxRecords | 设置或返回从查询返回到 Recordset 对象的记录的最大数量 |
PageCount | 返回 Recordset 对象中带有数据的页数 |
PageSize | 设置或返回 Recordset 对象单页允许的最大记录数 |
RecordCount | 返回 Recordset 对象中的记录数 |
排序 | 设置或返回用于排序 Recordset 的字段名称 |
Source(来源) | 设置一个字符串值或 Command 对象引用,或返回一个表示 Recordset 对象数据源的字符串值 |
州 | 返回一个描述 Recordset 对象是打开、关闭、正在连接、正在执行还是正在检索数据的状态值 |
Status | 返回当前记录相对于批量更新或其他批量操作的状态 |
StayInSync | 设置或返回当父记录位置更改时,子记录的引用是否会更改 |
方法
方法 | 描述 |
---|---|
AddNew | 创建一个新记录 |
取消 | 取消执行 |
CancelBatch | 取消批量更新 |
CancelUpdate | 取消对 Recordset 对象记录所做的更改 |
Clone | 创建现有 Recordset 的副本 |
Close | 关闭 Recordset |
CompareBookmarks | 比较两个书签 |
删除 | 删除记录或一组记录 |
Find | 在 Recordset 中搜索满足指定条件的记录 |
GetRows | 将 Recordset 对象中的多条记录复制到二维数组中 |
GetString | 将 Recordset 返回为字符串 |
移动 | 移动 Recordset 对象中的记录指针 |
MoveFirst | 将记录指针移动到第一条记录 |
MoveLast | 将记录指针移动到最后一条记录 |
MoveNext | 将记录指针移动到下一条记录 |
MovePrevious | 将记录指针移动到上一条记录 |
NextRecordset | 清除当前 Recordset 对象,并通过循环一系列命令返回下一个 Recordset 对象 |
Open | 打开一个数据库元素,该元素允许您访问表中的记录、查询的结果或已保存的 Recordset |
Requery | 通过重新执行创建原始 Recordset 的查询来更新 Recordset 中的数据 |
Resync | 从原始数据库刷新当前 Recordset 中的数据 |
Save | 将 Recordset 对象保存到文件或 Stream 对象 |
Seek | 搜索 Recordset 的索引以查找与指定值匹配的记录 |
Supports | 返回一个布尔值,该值定义 Recordset 对象是否支持特定类型的功能 |
Update | 将 Recordset 对象中对单条记录所做的所有更改保存起来 |
UpdateBatch | 将 Recordset 中的所有更改保存到数据库。在批量更新模式下工作时使用 |
活动
注意:您无法使用 VBScript 或 JScript 处理事件(只有 Visual Basic、Visual C++ 和 Visual J++ 语言可以处理事件)。
事件 | 描述 |
---|---|
EndOfRecordset | 当您尝试移动到最后一条记录之后的记录时触发 |
FetchComplete | 在异步操作中的所有记录都已获取后触发 |
FetchProgress | 在异步操作中定期触发,以说明已获取了多少条记录 |
FieldChangeComplete | 在 Field 对象的值更改后触发 |
MoveComplete | 在 Recordset 中的当前位置更改后触发 |
RecordChangeComplete | 在记录更改后触发 |
RecordsetChangeComplete | 在 Recordset 更改后触发 |
WillChangeField | 在 Field 对象的值更改之前触发 |
WillChangeRecord | 在记录更改之前触发 |
WillChangeRecordset | 在 Recordset 更改之前触发 |
WillMove | 在 Recordset 中的当前位置更改之前触发 |
集合
集合 | 描述 |
---|---|
Fields | 指示 Recordset 对象中的 Field 对象数量 |
属性 | 包含 Recordset 对象中的所有 Property 对象 |
Fields 集合的属性
属性 | 描述 |
---|---|
Count | 返回 fields 集合中的项目数。从零开始。 示例 countfields=rs.Fields.Count |
Item(named_item/number) | 返回 fields 集合中的指定项。 示例 itemfields=rs.Fields.Item(1) |
Properties 集合的属性
属性 | 描述 |
---|---|
Count | 返回 properties 集合中的项目数。从零开始。 示例 countprop=rs.Properties.Count |
Item(named_item/number) | 返回 properties 集合中的指定项。 示例 itemprop = rs.Properties.Item(1) |