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