前一节介绍了对数据访问的一些限制,其中讲到了对表的锁定。这一节将进一步地谈一谈如何实现共享数据的锁定操作。要保护共享数据,可以在用户编辑数据时锁定它。数据被锁定后,任何用户都可以读取它,但仅有一个用户可以修改它。Microsoft Jet可以在以下三种不同的级别上锁定数据:
·独占模式:阻止其他所有用户访问数据库,这是限制最大的模式,上一节已介绍过。
·记录集锁定:即锁定Recordset对象的基本表,用读表锁定、写表锁定或两者都用。
·页面锁定:锁定含有正在编辑的数据的页面,其长度为2048个字节(2K)。这是限制最小的模式。
在应用程序中用哪一种模式来锁定对象,主要看所需要的并发级别。例如,如果想使对象在任何时候都可用,则可使用页面锁定,因为它是限制最小的级别。如果应用程序要保证数据库中的大多数或所有数据都可访问,则应选择独占模式,这种模式确保应用程序独占数据库的访问。注意,这三种级别可以结合使用。例如,假定有一个订单系统,则可以用页面锁定来控制订单表的锁定,使订单接收者之间的并发程度最高。在一天结束时用记录集锁定来锁定汇总表,这个汇总表要用汇总数据来更新。最后,可以在夜间使用独占模式来整理数据库。
1.共享模式与独占模式
如前所述,独占模式是打开数据库限制最大的方式,它阻止其他所有用户打开该数据库。这种模式常用于数据库管理或数据库的批量修改,例如修复或整理操作以及改变数据库的结构等。在单用户环境中访问数据库时,通常以独占模式打开数据库,这可以提供更好的性能,因为Microsoft Jet不必对对象进行锁定和解锁,也不必刷新高速缓存器。但是,当在多用户环境中使用应用程序时,通常以共享模式打开数据库。
(1).以共享模式打开数据库
为了实现记录集锁定,必须以共享模式打开数据库。当以共享模式打开数据库时,可能会有多个用户同时对数据库进行访问,在这种情况下,Microsoft Jet将处理各用户间试图编辑相同记录的冲突。前一节中讲过,当用OpenDatabase方法打开数据库时,只要把Options参数的值设置为False,就能以共享模式打开数据库。下面举一个例子。
[1] [2] [3] [4] [5] 下一页
|