网络环境的数据共享.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章 网络环境的数据共享 第十二章 网络环境的数据共享 2 12.1 多用户概念 多用户环境是指在硬件和软件的结合上,允许两个或两个以上的 用户同时访问(读写)数据库和外部设备。在多用户环境下,应当保 证数据的一致性和正确性。 加锁 可以保证数据的一致性和正确性。 加锁 是对表文件或记录加锁 , 只有对它加锁的用户才可以修改这些 表或记录,而其他用户只可以读而不可修改这些数据,保证了数据的 一致性和正确性。但在加锁后要及时 解锁 ,以保证数据的共享。加锁 也会带来两个新问题:即 冲突 和 死锁 。 冲突 是指当一个用户加锁后修改一个记录和表文件时,另一个用 户也企图打开同一表文件,修改同一个记录或表文件。从而发生冲突, 我们可以用捕捉错误命令( ON ERROR )处理冲突问题。 死锁 一般发生在多表操作时。用户甲对表文件 A 加锁,不允许其他 用户使用,然后,准备使用表文件 B 的数据;但表文件 B 已被用户 B 加锁, 不允许其他用户使用,且用户乙也准备使用表文件 A 的数据。此时,由 于双方都在等待对方解锁,而甲、乙两用户无论等待多长时间,均无 法等到对方解锁,从而发生死锁。我们可通过软件方法处理死锁问题。 第十二章 网络环境的数据共享 3 12.2 数据共享或独占访问 在数据共享的环境中,可以按两种方式存取文件中的数据,一种 是从独占文件中存取数据,另一种是从共享文件中存取数据。当一个 文件以独占方式打开时,其他用户是不能以任何方式打开该文件的。 当一个文件以共享方式打开时,其他用户只能以共享方式打开该文件。 1. 以独占方式访问表 将一个表按独占方式打开,目的是在访问表期间严格排斥其他用 户的干扰,拒绝其他用户对文件中数据的任何修改。 方法⑴: SET EXCLUSIVE ON USE 表名 方法⑵: USE 表名 EXCLUSIVE 第十二章 网络环境的数据共享 4 2. 以共享方法访问表 在访问表中的数据时不排斥其他用户的访问,允许多个用户同 时对数据进行共享。这时,可以用共享方式打开表。 方法⑴: SET EXCLUSIZE OFF USE 表名 方法⑵: USE 表名 SHARED 当对表进行更新操作时,为了防止在更新期间其他用户的干扰, 必须将受影响的记录或整个表锁定起来,对数据更新进行保护。 第十二章 网络环境的数据共享 5 12.3 数据锁定 当按共享方式访问表时,必须通过表和记录的锁定来实现对数据的 管理。在锁定后,其他用户可以对读数据,但不能对表或记录执行写 操作。 锁定对象有两个:表和记录。表锁定是防止其他用户写整个文件, 而记录锁定将防止其他用户修改被锁定的记录。 12.3.1 自动锁定 按锁定的方式可分为自动锁定和手工锁定。有许多命令(见教材 中的表)在执行之前,将自动锁定一个记录或一个表,如果锁定成功, 就执行该命令,执行完后再解除锁定,这就是自动锁定。 第十二章 网络环境的数据共享 6 12.3.2 人工锁定及有关函数的应用 1. 表文件加锁函数 FLOCK() 格式: FLOCK() 该函数试图将当前或指定工作区的表文件锁定(锁定全部记录)。 如果加锁成功,返回“真” (T) ,加锁的用户可读写该表,其他用户只 能读不能写。如果加锁不成功,则返回“假” (F) ,表示该表或表中的 记录早已被其他用户锁定了。 第十二章 网络环境的数据共享 7 2. 表记录加锁函数 RLOCK() 格式: RLOCK([ 工作区号 / 别名 ]/[ , 字符表达式列表 ]) 该函数可锁定多个记录。其中,字符表达式选项指定一个或多个 记录号,并用逗号将它们分开, RLOCK() 函数就试着给这几个记录加锁。 例如,要给表中的前 5 个记录加锁,字符表达式就必须含有 1 , 2 , 3 , 4 , 5 ,如果字符表达式不选,就只给当前记录加锁。 所指定的记录都加上锁, RLOCK() 将返回 .T. ,如果表达式列表中 的一个或者多个记录不能被锁定, RLOCK() 将返回 .F. ,并且不给任何 一个记录加锁。 第十二章 网络环境的数据共享 8 3. 检测 ON ERROR 语句捕捉的出错号 ERROR() 函数。 格式: ERROR() ERROR() 返回最近的一个错误号。在 ON ERROR 命令被激活的情况 下, ERROR() 返回一个非0值。当程序执行时遇到加锁失败等错误 时,可用 ON ERROR() 程序中的 ERROR() 函数查明错误的类型,用 MESSAGE() 函数返回相应的错误信息。 4. 检测 ON ERROR 语句捕捉的出错号对应的出错信息函数 MESSAGE() 。 格式: MESSAGE([1]) 该函数是以字符串的形式返回当前的错误信息,或返回导致错误

文档评论(0)

sandajie + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档