木工打榫机:请教asp高手??

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 01:49:41
请问ASP高手,执行数据库操作时下面这句
Recordset.Open Sql,conn,1,1
中最后面的两个参数的值有哪些,各代表什么意思?好像参数值不同,操作数据库时很容易出错的。
我编程时就有一句
……
Rs.Open Sql,conn,1,3
Rs.AddNew
……

结果出错:数据库或对象为只读属性,不能更新
仔细查看数据库属性,都不是只读的啊,这让我很奇怪。难道是Rs.Open Sql,conn,1,3(出错时指向的就是这句)这句有问题吗?不过好像也没有什么问题啊

后面的参数 1 和 3 分别表示 "记录类型" 和 "锁定类型",详细说明如下:

A 记录类型(CorsorType)

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

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

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

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

B 锁定类型( LockType )

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

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

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

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

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