• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

多客户环境下VB数据库编程之(5)

发布: 2007-6-21 21:57 | 作者: --  | 来源: vbeden  | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

下一页 1 2 

   
页面锁定

  从理想的角度来说,如果能对记录进行锁定,则会给多用户程序带来极大的灵活性。然而遗憾的是,Microsoft Jet引擎不支持真正的记录锁定,而是使用页面锁定。

页面锁定只锁定包含当前正在编辑的记录的页,Microsoft Jet进行访问和锁定的页的大小为2K(2048个字节)。在使用页面锁定时,其他用户可以读取锁定页中的数据,但不能对数据进行修改。在这种锁定方案中,每次将锁定多个记录,锁定的记录的个数取决于每个记录的大小。例如,如果每个记录的长度为230个字节,则每次只能锁定9个记录;而如果记录的长度为30个字节,则每次可锁定68个记录。

  锁定模式。页面锁定分为两种模式,即保守式锁定和开放式锁定,它确定了Microsoft Jet如何对数据进行锁定。当编写在页面级别上锁定数据的应用程序时,必须确定要使用哪种锁定模式。页面锁定可以通过两种方法来设置,即LockEdits属性和OpenRecordset方法中的lockedit5参数。

  1.用LockEdits 属性指定锁定模式。锁定模式可以通过LockEdits属性来指定。该属性可用于各种Recordset对象,包括动态集、快照、表及动态类型的Recordset对象。LockEdits属性是一个布尔值,当把该值设置为True(缺省)时,将对记录集进行保守式锁定,即在执行Edit方法时锁定2K的页面:如果把该属性设置为False,则对记录集进行开放式锁定,即在执行UPdate之前不锁定要更新的记录所在的2K页面。如下面的例子:

  Dim rstTemP As ReCordset

   ……

  rstTemp.LockEdits=True

说明:a.锁定页面后,其它用户不能对正在编辑的记录所在页面进行修改,但可以读取锁定页中的数据。在其它用户锁定页面后,如果再把LockEdits属性设置为True,则会出错。b.如果把LockEdits属性设置为False,且其它用户已锁定页面,则其后的用户在使用Update时将会出错。c.当与Microsoft连接的ODBC数据源一起操作时,LockEdits属性被设置为False,即开放式锁定。

  2.用OpenRecordset方法指定锁定模式。我们已多次使用过OpenRecordset方法,该方法的格式如下:

   Set recordset=object.OpenRecordset(type,options,lockedits)

其中第三个参数,即lockedits,用来指定锁定模式或以只读方式打开记录集。该参数可以取以下5种值:

  (1)dbReadOnly:以只读方式打开记录集。注意,在options参数中也可以使用dbReadOnly,但不能同时使用,否则会产生错误。

  (2)dbPessimistic:用保守式锁定模式打开记录集,一旦使用Edit方法,将立即锁定正在编辑的记录所在的页面,直到执行Update方法后才释放对该页面的锁定。

  (3)dbOptimistic:用保守式锁定模式打开记录集,在执行Update方法前不锁定正在编辑的记录所在的页面。

  (4)dbOptimisticValue: 基于行值使用开放式并发(仅ODBCDirect工作区)。

  (5)dbOptimisticBatch:允许开放式更新(仅ODBCDirect工作区)。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网