ADO Recordset 对象
实例
- GetRows
- 本例演示如何使用 GetRows 方法。
Recordset 对象
ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。
在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。
ProgID
set objRecordset=Server.CreateObject("ADODB.recordset")
当您首次打开一个 Recordset 时,当前记录指针将指向第一个记录,同时 BOF 和 EOF 属性为 False。如果没有记录,BOF 和 EOF 属性为 True。
Recordset 对象能够支持两种更新类型:
-
立即更新 - 一旦调用 Update 方法,所有更改被立即写入数据库。
批更新 - provider 将缓存多个更改,然后使用 UpdateBatch 方法把这些更改传送到数据库。
在 ADO,定义了 4 中不同的游标(指针)类型:
- 动态游标 - 允许您查看其他用户所作的添加、更改和删除
- 键集游标 - 类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。
- 静态游标 - 提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。
- 仅向前游标 - 只允许在 Recordset 中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。
可通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标的类型。
注释:并非所有的提供者(providers)支持 Recordset 对象的所有方法和属性。
属性
属性 | 描述 |
---|---|
AbsolutePage | 设置或返回一个可指定 Recordset 对象中页码的值。 |
AbsolutePosition | 设置或返回一个值,此值可指定 Recordset 对象中当前记录的顺序位置(序号位置)。 |
ActiveCommand | 返回与 Recordset 对象相关联的 Command 对象。 |
ActiveConnection | 如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的 Connection 对象。 |
BOF | 如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。 |
Bookmark | 设置或返回一个书签。此书签保存当前记录的位置。 |
CacheSize | 设置或返回能够被缓存的记录的数目。 |
CursorLocation | 设置或返回游标服务的位置。 |
CursorType | 设置或返回一个 Recordset 对象的游标类型。 |
DataMember | 设置或返回要从 DataSource 属性所引用的对象中检索的数据成员的名称。 |
DataSource | 指定一个包含要被表示为 Recordset 对象的数据的对象。 |
EditMode | 返回当前记录的编辑状态。 |
EOF | 如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。 |
Filter | 返回一个针对 Recordset 对象中数据的过滤器。 |
Index | 设置或返回 Recordset 对象的当前索引的名称。 |
LockType | 设置或返回当编辑 Recordset 中的一条记录时,可指定锁定类型的值。 |
MarshalOptions | 设置或返回一个值,此值指定哪些记录被返回服务器。 |
MaxRecords | 设置或返回从一个查询返回 Recordset 对象的的最大记录数目。 |
PageCount | 返回一个 Recordset 对象中的数据页数。 |
PageSize | 设置或返回 Recordset 对象的一个单一页面上所允许的最大记录数。 |
RecordCount | 返回一个 Recordset 对象中的记录数目。 |
Sort | 设置或返回一个或多个作为 Recordset 排序基准的字段名。 |
Source | 设置一个字符串值,或一个 Command 对象引用,或返回一个字符串值,此值可指示 Recordset 对象的数据源。 |
State | 返回一个值,此值可描述是否 Recordset 对象是打开、关闭、正在连接、正在执行或正在取回数据。 |
Status | 返回有关批更新或其他大量操作的当前记录的状态。 |
StayInSync | 设置或返回当父记录位置改变时对子记录的引用是否改变。 |
方法
方法 | 描述 |
---|---|
AddNew | 创建一条新记录。 |
Cancel | 撤销一次执行。 |
CancelBatch | 撤销一次批更新。 |
CancelUpdate | 撤销对 Recordset 对象的一条记录所做的更改。 |
Clone | 创建一个已有 Recordset 的副本。 |
Close | 关闭一个 Recordset。 |
CompareBookmarks | 比较两个书签。 |
Delete | 删除一条记录或一组记录。 |
Find | 搜索一个 Recordset 中满足指定某个条件的一条记录。 |
GetRows | 把多条记录从一个 Recordset 对象中拷贝到一个二维数组中。 |
GetString | 将 Recordset 作为字符串返回。 |
Move | 在 Recordset 对象中移动记录指针。 |
MoveFirst | 把记录指针移动到第一条记录。 |
MoveLast | 把记录指针移动到最后一条记录。 |
MoveNext | 把记录指针移动到下一条记录。 |
MovePrevious | 把记录指针移动到上一条记录。 |
NextRecordset | 通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset。 |
Open | 打开一个数据库元素,此元素可提供对表的记录、查询的结果或保存的 Recordset 的访问。 |
Requery | 通过重新执行对象所基于的查询来更新 Recordset 对象中的数据。 |
Resync | 从原始数据库刷新当前 Recordset 中的数据。 |
Save | 把 Recordset 对象保存到 file 或 Stream 对象中。 |
Seek | 搜索 Recordset 的索引以快速定位与指定的值相匹配的行,并使其成为当前行。 |
Supports | 返回一个布尔值,此值可定义 Recordset 对象是否支持特定类型的功能。 |
Update | 保存所有对 Recordset 对象中的一条单一记录所做的更改。 |
UpdateBatch | 把所有 Recordset 中的更改存入数据库。请在批更新模式中使用。 |
事件
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual C++, and Visual J++ languages can handle events).
事件 | 描述 |
---|---|
EndOfRecordset | 当试图移动到超过 Recordset 结尾的行时被触发。 |
FetchComplete | 当异步操作中的所有记录均被读取后被触发。 |
FetchProgress | 在异步操作期间被定期地触发,报告已读取多少记录。 |
FieldChangeComplete | Field 对象的值更改被触发。 |
MoveComplete | Recordset 中的当前位置更改后被触发。 |
RecordChangeComplete | 一条记录更改之后被触发。 |
RecordsetChangeComplete | 在 Recordset 更改之后被触发。 |
WillChangeField | 在 Field 对象的值更改之前被触发 |
WillChangeRecord | 在一条记录更改之前被触发。 |
WillChangeRecordset | 在 Recordset 更改之前被触发。 |
WillMove | 在 Recordset 中的当前位置更改之前被触发。 |
集合
集合 | 描述 |
---|---|
Fields | 指示在此 Recordset 对象中 Field 对象的数目。 |
Properties | 包含所有 Recordset 对象中的 Property 对象。 |
Fields 集合的属性
属性 | 描述 |
---|---|
Count |
返回 fields 集合中项目的数目。以 0 起始。 例子: countfields = rs.Fields.Count |
Item(named_item/number) |
返回 fields 集合中的某个指定的项目。 例子: itemfields = rs.Fields.Item(1) 或者 itemfields = rs.Fields.Item("Name") |
Properties 集合的属性
属性 | 描述 |
---|---|
Count |
返回 properties 集合中项目的数目。以 0 起始。 例子: countprop = rs.Properties.Count |
Item(named_item/number) |
返回 properties 集合中某个指定的项目。 例子: itemprop = rs.Properties.Item(1) 或者 itemprop = rs.Properties.Item("Name") |