2).开放式锁定。开放式锁定也称乐观锁定。使用开放式锁定时,MicrosoftJet引擎仅在试图用Update方法提交记录变更时才锁定页面,完成更新操作后立即释放对页面的锁定。由于锁定仅在应用程序试图提交变更时发生,因此能使锁定的时间最短,使其它用户只在锁定生效的较短时间内不能访问该页面。这是开放式锁定的主要优点。开放式锁定的缺点是:当用户正在编辑记录时,不能保证更新是否会成功。如果另一个用户改变了第一个用户正在编辑的记录,那么依赖于开放式锁定的更新将会失败。例如,假定张三和李四正在编辑同一个记录,张三开始以开放式锁定编辑某个客户记录。由于张三使用的是开放式锁定,并没有真正锁定记录,所以不能禁止李四试图编辑相同的记录。在李四编辑相同的客户记录时,他不知道张三正在编辑该记录,并且也没有看到最新的数据。当张三试图在李四编辑相同的客户记录时存储他的变更,就会产生一个错误。对于大多数数据库应用程序来说,可能要选择开放式锁定,因为其它用户修改或删除本人正在使用的记录的可能性要小于试图访问已被锁定的页面上记录的可能性。但是,如果某个应用程序中有多个用户同时访问和编辑记录,则应使用保守式锁定,以确保在执行编辑期间记录不被其他人修改。在这种情况下,应注意不要使记录锁定的时间过长。
3).释放锁定。如前所述,在执行Update方法后,将自动释放页面锁定。但是,释放记录锁定是一种后台进程,有时候,其它操作发生得很快,以至于数据库来不及处理该进程。如果正在开发一个数据输入密集型的应用程序,则可能需要暂停应用程序的处理,这可以通过Microsoft Jet数据库引擎的Idle方法来完成。Idle方法挂起数据处理,启用Microsoft Jet数据库引擎执行其它操作,诸如内存优化或内存页超时等(仅Microsoft Jet工作区)。该方法用于DBEngine对象,格式如下:
DBEngine.Idle[dbRefreshCachel
在多用户环境中,用Idle方法可以使Microsoft Jet数据库引擎执行后台任务。在一般情况下,仅当没有任何操作(包括移动鼠标) 上一页 [1] [2] [3] [4] 下一页
|