袁姗姗快乐大本营元宵:rs.open sql,conn,3,2

来源:百度文库 编辑:高考问答 时间:2024/04/28 05:10:54
rs.open sql,conn,3,2
中的3、2是什么意思?

这两个是游标,具体的作用是:

RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1)
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4)
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

总结一下:

sql,conn,1,1 代表不允许更新,一般用于查询操作。

sql,conn,1,3 代表允许更新,一般用于插入,更新和删除操作。

Rs.open Source, ActiveConnection, CursorType, LockType, Options
游标CursorType
常量值说明adOpenDynamic2使用动态游标。其他用户所作的添加、更改或删除均可见,而且允许Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。adOpenForwardOnly0默认值。使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在Recordset 中进行一个传递时,用它可提高性能。adOpenKeyset1使用键集游标。尽管从您的Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所作的数据更改依然可见。adOpenStatic3使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所作的添加、更改或删除不可见。adOpenUnspecified-1不指定游标类型。
LockType
LockType属性是Recordset对象中的又一个重要属性。当打开记录集时,可以指定锁定类型LockType。锁定就是如何确保数据的完整性,确保更改不会被覆盖。需要避免的典型情况是多次更新,比如一个用户改动了一些数据,接着另一个用户立即又将其做了修改。为了避免这种情况发生,就要锁定记录。有许多不同的方法可以保证记录得到保护,可通过锁定类型来设置这些方法。
LockType的值
常量值说明adLockBatchOptimistic4指示开放式批更新。需要批更新模式。adLockOptimistic3指示逐个记录开放式锁定。提供者使用开放式锁定,仅在调用Update 方法时锁定记录。adLockPessimistic2指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之后立即在数据源锁定记录。adLockReadOnly1默认。指示只读记录。无法改变数据。adLockUnspecified-1未指定锁定类型。创建副本时,副本与源对象使用相同的锁定类型。