刘老师解答ADO参数摘录1-杜小杰
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


刘老师解答ADO参数摘录1

发表时间:2012/5/2 8:44:57 评论(0) 浏览(6998)  评论 | 加入收藏 | 复制
   
摘 要:芜湖--无名小卒 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


Access软件网交流QQ群(群号:198465573)
 
 相关文章
ADO记录集筛选  【赵文斌  2012/12/16】
【Access文章】ADO记录集说明  【漏蛧尐魚℡  2013/1/24】
解决ADODB.Stream用户类型未定义提示错误   【杜超-2号  2013/4/8】
常见问答
技术分类
相关资源
文章搜索
关于作者

杜小杰

文章分类

文章存档

友情链接