Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

刘老师解答ADO参数摘录1

时 间:2012-05-02 08:44:57
作 者:风行   ID:16058  城市:江阴
摘 要:芜湖--无名小卒 10:17:35
我想还问昨晚上课中问的一个问题,没有给我回答。添加记录(用的是ADO),为什么添加记录时要锁定记录呢?

正 文:

芜湖--无名小卒() 10:17:35
我想还问昨晚上课中问的一个问题,没有给我回答。添加记录(用的是ADO),为什么添加记录时要锁定记录呢?
UMVsoft-
刘师义10:20:04
什么要锁定记录?
芜湖--无名小卒() 10:24:40
rst.openrecordset currentproject.connection,adopenkeyset,adolockoptimistic
不知道是否写错了,最后一个。
adolockoptimistic

UMVsoft-
技术服务210:25:56
adLockOptimistic 仅当调用update方法时,数据提供者锁定记录

adLockOptimistic 3
当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作
芜湖--无名小卒() 10:27:18
也就是说更新时为什么要锁定记录?
芜湖--无名小卒() 10:30:23
可能这不是问题的问题,增加记录时就是不让其它用户对数据进行操作,否则造成混乱了?
UMVsoft-
刘师义() 10:30:30
当然要锁定
不然多用户并发操作的时候,就会出问题
不过一般都是用的乐观锁
只在Update的时候才锁定
UMVsoft-
技术服务2() 10:31:11
Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
芜湖--无名小卒() 10:31:53
3时不锁定为什么不出问题呢?
UMVsoft-
刘师义() 10:31:58
其实这里的锁主要就是用来处理并发的,也就是出现并发处理的时候系统要如何处理
错了
芜湖--无名小卒() 10:32:28
哟,数据不在更新,允许其它用户操作记录。
UMVsoft-
刘师义() 10:32:38
adLockOptimistic并不是不锁定
而是在Update的时候才锁定,Update提交完成后就放开了
芜湖--无名小卒() 10:33:25
与我猜测的差不多。
UMVsoft-
刘师义() 10:33:32
这样锁定的时候就非常短
西安--todd(1198877364) 10:34:14
老师教学的视频有没有录像呢?
芜湖--无名小卒() 10:34:48
但游标类型为什么要设定用户不能看到其它用户进行的更新操作呢?adopenkeyset.
UMVsoft-
刘师义() 10:35:42
这个和性能有关
芜湖--无名小卒() 10:36:18
这样性能快些?
UMVsoft-
刘师义() 10:36:20
像仅向前游标adOpenForwardOnly,这个因为只能MoveNext,并且是只读的,因此访问速度最快
而像动态游标adOpenDynamic,由于它需要始终获取其它用户所做的添加、更改、删除,自然也就要耗费更多的资源
性能也就要差一些
UMVsoft-
刘师义() 10:37:32
不过一般都建议用键集游标adOpenKeyset
因为动态游标adOpenDynamic在访问有些数据库的时候是不受支持的
UMVsoft-
刘师义() 10:38:34
adOpenKeyset则相对来说适用范围更广
芜湖--无名小卒() 10:39:45
哟,原来这样,昨晚周老师说是添加记录就是要用adopenDynamic.我说我见到的最多的还是adopenkeyset

 

芜湖--无名小卒() 10:43:08
谢谢刘老师帮我理清了思路。

 

UMVsoft-刘师义() 10:44:30
嗯,这里一般最常用的就2种情况:
1.
读取数据(只读即可)
方法一:Set rst = CurrentProject.Execute(strSQL)
只有仅向前游标
方法二:Set rst = CreateObject("ADODB.Recordset")
rst.CursorLocation = adUseClient '
可以通过该参数使用客户端游标(即可以用MoveFirstMovePrevious向前移动了,不需要这个的话和方法一一样)
rst.Open strSQL, CurrentProject.Connection

2.
编辑数据
rst.Open strSQL,CurrentProject.Connection,adOpenKeyset, adLockOptimistic

相关:帮学员解答ADO参数意思/adOpenKeyset/adLockOptimistic


Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助