文档详情

新编中文Visual_FoxPro_60 实用教程.ppt

发布:2018-05-25约1.31万字共65页下载文档
文本预览下载声明
第十一章 多用户与数据共享 第一节 多用户环境中的数据访问 第二节 数据缓冲技术 第三节 事务处理 第四节 冲突处理 本章小结 习题十一  第一节 多用户环境中的数据访问   多用户环境中数据访问的最重要原则就是不能两用户同 时修改一个数据,否则就会造成冲突,不知以谁的修改为准。   所以共享访问程序设计就要限制对数据的同时访问,避 免冲突。   一、多用户环境中数据访问的方式   在多用户环境中,数据访问有两种方式:   (1)从独占文件中访问。   (2)从共享文件中访问。   如果以共享方式打开一个表,那么其他用户也可以对该文件进行访问。   但如果以独占方式打开一个表,那么其他用户就不可以再对该文件进行读写操作。   下面以几个假设的数据库与表为例进行介绍。   1.以独占访问方式使用表   独占方式是打开一个文件时最严格的限制方式。通过界面上的菜单或工具栏按钮打开一个表时,默认是以独占方式打开的。 也可以利用Visual FoxPro命令明确地指定以独占方式打开一个表。 如果要打开一个独占使用的表,可以有两种方法: (1)方法一:在“命令”窗口中键入下列命令: SET EXCLUSIVE ON USE teachers 以独占方式打开表teachers.dbf (2)方法二:在“命令”窗口中键入下列命令: USE teachers EXCLUSIVE 以上两种方法实现同样的效果。 当执行下列Visual FoxPro命令时,系统要求表文件必须以独占方式打开:   1)ALTER TABLE。   2)INDEX(当创建、添加或删除一个复合索引标识时)。   3)INSERT[BLANK]。   4)MODIFY STRUCTURE(若要用此命令更改一个表 结构,必须以独占方式打开该表。当以共享方式打开这个表 时,只有在只读方式下使用此命令)。   5)PACK。   6)REINDEX。   7)ZAP。   若在一个共享表中执行上述命令,则Visual FoxPro将返回出错信息:“文件必须以独占方式打开”。   2.以共享访问方式使用表   若一个表是以共享方式打开的,则多台计算机可同时访问该表。   在通过界面打开表时,可明确地用Visual FoxPro命令指定以共享方式打开一个表,而不受SET EXCLUSIVE默认的ON所限制。   如果要打开一个共享使用的表,可以有两种方法:   (1)方法一:在“命令”窗口中键入下列命令:   SET EXCLUSIVE OFF   USE teachers 以共享方式打开表teachers.dbf   (2)方法二:在“命令”窗口中键入下列命令:   USE teachers SHARED   以上两种方法实现同样的效果。   当要在一个共享表中添加或更改数据时,必须先锁定要更改的记录或整个表。 方法如下:   1)使用命令自动锁定记录或表。   2)使用记录和表的锁定函数,人工锁定一个或多个 记录。   3)用CURSORSETPROP()函数初始化缓冲。   在这三种锁定方式下面打开表文件时,与共享表相关的备注和索引文件也将会以相同的共享方式打开。   如果将一个只是用于查找数据的表标记为只读则可以提高性能。   3.多用户环境中数据库的访问   独占和共享的数据访问方式,不仅适用于表,也适用于数据库。   若要以独占方式打开数据库,则可用下列命令:   OPEN DATABASE数据库名EXCLUSIVE   若要以共享方式打开数据库,则可用下列命令:   OPEN DATABASE数据库名SHARED   在学习本内容时,最好能够同步地在局域网中的两台计算机上实践操作。   两台计算机同时打开Visual FoxPro 6.0系统,同时对同一数据表进行各种操作,检验多用户对同一数据操作所出现的冲突。若手头上只有一台计算机,则可在同一台机器上同时打开两个Visual FoxPro 6.0系统窗口,用多任务代替多用户,可实现类似的效果。   二、数据锁定的方法   了解独占和共享这两种数据访问方式后,就可以编写最简单的网络程序了。但这样编的程序的网络效率是很低的,因为一旦有人独占数据,其他人就都不能访问了,只能处于等待状态。在有众多用户的环境中,这样必然导致工作效率的下降。所以独占方式在网络环境中是较少使用的。   如果用共享方式访问文件,必须通过锁定表和记录来对这种访问进行管理。“锁”的意思就是用户将数据锁上后,别的用户就不能修改但可查看数据,而且别的用户在查看时也可以对数据进行加锁修改。锁定不同于访问权限,它既可对数据进行长期控制,也可短期控制。   Visual FoxPro提供自动和人工两种锁定方
显示全部
相似文档