1、Recordset对象,Recordset对象表示的是来自数据表或命令执行结果的记录全集。在任何情况下,该对象所指的当前记录均为集合内的单个记录。使用Recordset对象可以操作来自提供程序的数据,通过该对象几乎可以对所有数据进行操作。所有Recordset对象均使用记录(行)和字段(列)进行构造。,创建和访问记录集,用Connection对象的Execute方法返回记录集 当调用Connection对象的Execute方法时,如果CommandText参数指定按行返回的查询,执行产生的任何结果将存储在新的Recordset对象中。 例子:,用Recordset对象的Open方法打开记录集
2、使用Recordset对象的Open方法打开一个记录集。语法格式: recordset.Open Source, ActiveConnection, CursorType, LockType, Options 其中参数Source为Command对象变量名、SQL语句、表名、存储过程调用或持久Recordset文件名。ActiveConnection为有效的Connection对象变量名或包含ConnectionString参数的字符串。CursorType指定打开Recordset时应使用的游标类型。LockType指定打开Recordset时应使用的锁定(并发)类型。Options指定如何
3、计算Source参数(如果它代表的不是Command对象),或从以前保存Recordset的文件中恢复Recordset。例如:,访问字段值 每个Recordset对象都包含一个Fields集合,该集合由一些Field对象组成,Field对象的个数由Fields集合的Count属性确定。每个Field对象对应于记录集内的一列,也就是数据库表中的一个字段。使用Field对象的Value属性可以设置或返回当前记 录中的字段值,使用Field对象的Name属性可以返回字段名。例如:,最后一条语句也可以用下面几种形式来表示:Response.Write rst(“字段名“)Response.Write
4、 rst.Fields(“字段名“)Response.Write rst(0)Response.Write rst.Fields(0)Response.Write rst.Fields(0).Value,关闭记录集创建记录集并执行所需操作后,可以使用Close方法关闭Recordset对象,同时释放相关联的数据和可能已经通过该特定Recordset对象对数据进行的独立访问。随后可以调用Open方法重新打开具有相同属性或已修改属性的Recordset对象。,设置游标特性和锁定类型,设置游标的类型 使用CursorType属性可以指定打开Recordset对象时应该使用的游标类型,该属性可以设置或
5、返回下列值之一: adOpenForwardOnly:表示仅向前游标(默认值),只能在Recordset中向前滚动。 adOpenStatic:表示静态游标,也允许Recordset中各种类型的移动,支持书签。 adOpenKeyset:表示键集游标,允许Recordset中各种类型的移动。反映修改,不反映添加或删除。 adOpenDynamic:表示动态游标,用于不依赖书签的Recordset中各种类型的移动。如果提供者支持,可以使用书签。,设置游标引擎的位置 使用Recrodset对象的CursorLocation属性可以设置或返回游标的位置,该属性可以取下列值之一: adUseServe
6、r,表示使用数据提供程序或驱动程序提供的游标(默认值)。 adUseClient:表示使用由本地游标库提供的客户端游标。,设置锁定类型打开Recordset对象前设置LockType属性可以指定打开该对象时提供程序应该使用的锁定类型,该属性设置或返回下列值之一。 adLockReadOnly:这是默认值,表示只读,无法更改数据。 adLockPessimistic:表示保守式记录锁定(逐条),提供程序执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。 adLockOptimistic:表示开放式记录锁定(逐条),提供程序使用开放式锁定,只在调用Update方法时锁定记录
7、。 adLockBatchOptimistic:表示开放式批更新,用于与立即更新模式相反的批更新模式。,统计记录集内包含的记录数 使用Recordset对象的RecordCount属性可以确定Recordset对象中记录的当前数目。仅向前游标和动态游标不支持RecordCount属性。当ADO无法确定记录数时,该属性返回-1。,游标与锁定类型,CursorType参数取值范围为0、1、2、3 : 0 只读,且当前数据记录指针只能向下移动 1 可读写,记录指针可自由移动 2 可读写,记录指针可自由移动(反映修改) 3 只读,记录指针可自由移动 LockType参数取值范围为1、2、3、4 : 1
8、 只读,不许修改记录集(默认值) 2 悲观锁定,只能同时被一个用户修改,修改时锁 定,修改完毕释放 3 乐观锁定,可以同时被多个客户修改 4 批次乐观锁定,数据可以修改,但不锁定其他客户,记录导航,当打开一个非空记录集时,当前记录总是位于第一行记录上。使用Recordset对象的下列属性或方法可以在不同记录之间移动。 AbsolutePosition属性:设置或返回当前记录在记录集内的序号位置 Bookmark属性:设置或返回在记录集内唯一标识当前记录的书签 BOF属性:如果当前记录在第一条记录之前,则该属性值为True EOF属性:如果当前记录在最后一条记录之后,则该属性值为True Move方法: 语法格式:recordset.Move NumRecords, Start 在记录集内向前或向后移动一定数目的记录。NumRecords为正数时,向记录集的末尾移动,为负数时向记录集的开始移动。Start指定移动的起点,可以是当前记录(默认值)或某一书签 MoveFirst方法: 移到记录集内的第一条记录 MoveLast方法: 移到记录集内的最后一条记录 MoveNext方法: 移到记录集内的下一条记录 MovePrevious方法: 移到记录集内的上一条记录,使用分页方法显示数据,