vf数据库加锁技术的应用

vf数据库加锁技术的应用

ID:23263864

大小:106.00 KB

页数:5页

时间:2018-11-05

vf数据库加锁技术的应用_第1页
vf数据库加锁技术的应用_第2页
vf数据库加锁技术的应用_第3页
vf数据库加锁技术的应用_第4页
vf数据库加锁技术的应用_第5页
资源描述:

《vf数据库加锁技术的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、VF数据库加锁技术的应用  摘要:VF数据库可以在网上由多个用户同时使用,当网上的多台计算机对主机数据库中的表进行操作时,为了防止多个用户同时修改一个表或一个记录而引起数据错误,VF提供了多用户共享数据库的访问技术。  关键字:人工锁定自动锁定VF  对共享库中的表,可能会有多个用户同时去修改,而引起表中的数据出错,为此对并行访问必须施加某些限制,使同一时刻只能由一个用户对记录或表进行修改,VF中用加锁的方式避免了多用户修改表时数据错误的产生。下面介绍VF中加锁的2种方式.  一、人工锁定  人工锁定是指在修改表或记录的命令前,用专门的锁定函数来

2、锁定表或记录,修改命令执行后,应该立即对表或记录解锁.  1、锁定函数  FLOCK(“表别名”)&&锁定表  LOCK(“0”,“表别名”)&&锁定表头  LOCK(“记录号1,记录号2,…”,,“表别名”)&&锁定单个或多个记录  锁定成功函数返回.T.值  2、解锁命令  UNLOCK&&解锁当前工作区内所有锁定的记录或表头或表5  UNLOCKRECORD记录号IN表别名&&解锁单个记录,当记录号为0时解锁表头  UNLOCKALL&&解锁所有工作区中所有锁定的记录或表头或表  3、锁定函数的使用  setmultilockson&&要锁

3、定多个记录必须做此设置  setreprocessto1  database\\主机名\磁盘名路径\数据1shared  use表1shared  iflock(“2,3”,“表1”)  replacerecord2字段名with替换值  replacerecord3字段名with替换值  unlock  else  wait“锁定不成功”  endif  如果lock函数锁定成功,将执行replace语句对2号3号记录中字段做替换,如果在执行lock函数时,其他用户锁定了2号或3号任何一个记录,则此处的锁定不成功。  4、锁定不成功的情况  ①

4、当表已被其他用户锁定时,再做表或表头或任何记录的锁定;②当表中已有记录或表头被其他用户锁定时,再做该记录或表头或表的锁定。  5、锁定不成功时锁定函数如何执行5  ①setreprocessto命令设置的数值在1―32000之间。锁定函数将按给定的数值反复尝试加锁。如setreprocessto30。函数会尝试加锁30次。30次还不成功函数返回。F.,上面的例子中尝试加锁1次,如不成功lock函数返回.F.,执行else下面的语句,显示出“锁定不成功”;②setrepro-cessto0此为默认设置,锁定函数将无限次的反复尝试加锁,直到某次加锁成

5、功,锁定函数返回.T.值。可以按ESC键取消加锁操作,此时锁定函数返回.F;③setrprocessto-1锁定函数将无限次的反复尝试加锁,ESC键也无法取消加锁操作,直到某次加锁成功,锁定函数返回.T.值,程序才能继续往下执行,如果上面的例子做此设置,else下的语句任何时候都不会执行。  6、锁定多个记录的条件  设置setmulitlockson,当设置setmulitlocksoff时可以锁定表,锁定表头,锁定表中的单个记录,上面的例子要锁定2个记录设置必须为on。  7、立即解锁  当加锁的用户对表或记录做完修改之后,应否则其他用户不能

6、对锁定的表或记录做修改。  二、自动锁定  自动锁定是指VF中有一些对表和记录的修改命令本身有加锁功能,修改表或记录的命令执行时首先做锁定,命令不同加锁的范围不同,命令执行完自动解锁。  1、下面使用REPLACE命令对2号、5,6,57号记录做修改,看一下自动锁定的过程。  setreprocessto1  database\\主机名\磁盘名路径\数据1shared  use表1shared  replacerecord2字段名with替换值  go5  replacenext3字段名with替换值  replace命令对单个记录修改时会自动锁

7、定要修改的记录,本例在执行replacerecord2命令时先锁定2号记录,锁定成功后对字段做替换。当替换完成时自动解锁2号记录,然后记录指针指向5号记录,接着做replacenext命令时要修改多个记录。此命令加锁范围是表,命令执行前先锁定整个表.锁定成功后做替换,替换完成时自动解锁整个表.  2、自动锁定也会不成功,原因与人工锁定相同.  3、锁定不成功时有自动锁定功能的这条命令如何执行要看setreprocessto的设置①setreprocessto命令设置的数值在1―32000之间。程序将按给定的数值反复尝试加锁,当执行到最后一次仍不成

8、功时,将执行onerror例程。如果没有onerror例程,将出现警告信息窗口,提示“其他用户正在使用该记录”。信息窗口上有“取消”“挂

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。