ASP游标参数详解记录集
rs.opensql,conn,A,B
A:
ADOPenforwardonly(=0)
只读,且当前数据记录只能向下移动。
ADOPenkeyset(=1)
只读,当前数据记录可自由移动。
ADOpendynamic(=2)
可读写,当前数据记录可自由移动。
ADOpenstatic(=3)
可读写,当前数据记录可自由移动,可看到新增记录。
B:
ADLockreadonly(=1)
缺省锁定类型,记录集是只读的,不能修改记录。
ADLockpessimistic(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录,只要编辑一开始,则立即锁住记录。
ADLockoptimitic(=3)
乐观锁定,直到用Update方法提交更新的记录时才锁定记录。
ADLockbatchoptimistic(=4)
批量乐观锁定,允许修改多个记录,只有调用UPDATEBATCH方法时才锁定记录。
当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,数据在这段时间被更新。这就减少了资源的利用。
可使用Recordset对象操作来自提供者的数据。使用ADO时,通过Recordset对象可对几乎所有数据进行操作。所有Recordset对象均使用记录(行)和字段(列)进行构造。由于提供者所支持的功能不同,某些Recordset方法或属性有可能无效。
在ADO中定义了四种不同的游标类型:
动态游标?用于查看其他用户所作的添加、更改和删除,并用于不依赖书签的Recordset中各种类型的移动。如果提供者支持,可使用书签。
键集游标?其行为类似动态游标,不同的只是禁止查看其他用户添加的记录,并禁止访问其他用户删除的记录,其他用户所作的数据更改将依然可见。它始终支持书签,因此允许Recordset中各种类型的移动。
静态游标?提供记录集合的静态副本以查找数据或生成报告。它始终支持书签,因此允许Recordset中各种类型的移动。其他用户所作的添加、更改或删除将不可见。这是打开客户端(ADOR)Recordset对象时唯一允许使用的游标类型。
仅向前游标?除仅允许在记录中向前滚动之外,其行为类似静态游标。这样,当需要在Recordset中单程移动时就可提高性能。
在打开Recordset之前设置CursorType属性来选择游标类型,或使用Open方法传递CursorType参数。部分提供者不支持所有游标类型。请检查提供者的文档。如果没有指定游标类型,ADO将默认打开仅向前游标。
如果CursorLocation属性被设置为adUseClient后打开Recordset,则在返回的`Recordset对象中,Field对象的UnderlyingValue属性不可用。对部分提供者(例如MicrosoftODBCProviderforOLEDB连同MicrosoftSQLServer),可以通过使用Open方法传递连接字符串,根据以前定义的Connection对象独立地创建Recordset对象。ADO仍然创建Connection对象,但它不将该对象赋给对象变量。不过,如果正在相同的连接上打开多个Recordset对象,就应该显式创建和打开Connection对象,由此将Connection对象赋给对象变量。如果在打开Recordset对象时没有使用该对象变量,即使在传递相同连接字符串的情况下,ADO也将为每个新的Recordset创建新的Connection对象。
可以创建所需数量的Recordset对象。
打开Recordset时,当前记录位于第一个记录(如果有),并且BOF和EOF属性被设置为False。如果没有记录,BOF和EOF属性设置是True。
假设提供者支持相关的功能,可以使用MoveFirst、MoveLast、MoveNext和MovePrevious方法以及Move方法,和AbsolutePosition、AbsolutePage和Filter属性来重新确定当前记录的位置。仅向前Recordset对象只支持MoveNext方法。当使用Move方法访问每个记录(或枚举Recordset)时,可使用BOF和EOF属性查看是否移动已经超过了Recordset的开始或结尾。
Recordset对象可支持两类更新:立即更新和批更新。使用立即更新,一旦调用Update方法,对数据的所有更改将被立即写入基本数据源。也可以使用AddNew和Update方法将值的数组作为参数传递,同时更新记录的若干字段。
|