大学计算机第11网络程序的设计基础

上传人:m**** 文档编号:567698441 上传时间:2024-07-22 格式:PPT 页数:22 大小:1.28MB
返回 下载 相关 举报
大学计算机第11网络程序的设计基础_第1页
第1页 / 共22页
大学计算机第11网络程序的设计基础_第2页
第2页 / 共22页
大学计算机第11网络程序的设计基础_第3页
第3页 / 共22页
大学计算机第11网络程序的设计基础_第4页
第4页 / 共22页
大学计算机第11网络程序的设计基础_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《大学计算机第11网络程序的设计基础》由会员分享,可在线阅读,更多相关《大学计算机第11网络程序的设计基础(22页珍藏版)》请在金锄头文库上搜索。

1、第第1111章章 网络程序设计基础网络程序设计基础(1+2+2学时学时学时学时) )吉林大学吉林大学 公共计算机教学与研究中心公共计算机教学与研究中心2 / 21 3. 3. 解决方法解决方法:文件共享文件共享与与数据锁机制数据锁机制 记录和文件锁记录和文件锁。第第11章章 网络程序设计基础网络程序设计基础 1. 1. 网络程序的网络程序的主要特点主要特点:多个程序:多个程序并行执并行执行行,多个用户,多个用户同时访问同时访问( (输入、修改和查询输入、修改和查询) )数据数据库。库。 2. 2. 要解决的要解决的关键问题关键问题:数据共享数据共享与与访问冲访问冲突突。3 / 21 2. 2.

2、 共享共享/ /独占独占:打开文件后,是:打开文件后,是/ /否允许否允许其其他用户他用户同时打开,可对同时打开,可对DBCDBC和和DBFDBF进行设置。进行设置。11.1 文件的打开方式文件的打开方式 打开方式包含打开方式包含两个方面两个方面的内容:的内容: 1. 1. 可修改可修改/ /只读只读:打开文件后,是:打开文件后,是/ /否允许否允许本用户本用户修改。可对修改。可对DBCDBC、DBFDBF、TXTTXT、PRGPRG、QPRQPR和和MPRMPR进行设置。进行设置。 4 / 21 2. 2. 进入数据库设计器进入数据库设计器 :Modify Modify DataBaseDa

3、taBase 文件名文件名 NoEidtNoEidt | | NoModifyNoModify 。11.1.1 文件的只读与可修改文件的只读与可修改 1. 1. 打开数据库文件打开数据库文件:Open Open DataBaseDataBase NoUpdateNoUpdate 只能查看只能查看数据库中的内容,不允数据库中的内容,不允许许添加添加、新建新建和和删除删除表表、关联关联和和参照完整性参照完整性 。不许不许改改表结构表结构、有有效规则效规则、默认值默认值和和索引索引,但,但能输能输入入、修改修改或或删除删除数据数据记录记录。例例: Open Open DataBaseDataBase

4、 XSXX XSXX NoUpdateNoUpdate Modify Modify DataBaseDataBaseADD TABLE TB & ADD TABLE TB & 添加表失败添加表失败 若数据库若数据库已打开已打开,则,则保留保留原方式原方式;若;若新打开新打开数据库,则为数据库,则为可修改方式可修改方式。此短语。此短语使使数据库设数据库设计器计器呈呈只读只读状态状态 。例例:Close AllClose AllModiModi Data XSXX Data XSXX NoModifyNoModify Add Table TB & Add Table TB & 可加表可加表5 /

5、21 5. 5. 打开打开程序程序文件文件 : Modify Command Modify Command NoModifyNoModify 4. 4. 打开打开文本文本文件文件 : Modify File Modify File NoModifyNoModify 。11.1.1 文件的只读与可修改文件的只读与可修改 3. 3. 打开表打开表:Use Use NoUpdateNoUpdate 只读只读方式打开表,方式打开表,不不允许允许修改修改任何内容任何内容( (含含结构和记录结构和记录) )。例例:Use XSB Use XSB NoUpdateNoUpdateModiModi StruS

6、tru BrowseBrowse6 / 21 独占打开独占打开:一个文件被:一个文件被某用户打开后某用户打开后,其他用户其他用户无法打开无法打开这个文件。这个文件。11.1.2 文件的独占与共享文件的独占与共享 共享打开共享打开:一个文件被:一个文件被某用户打开后某用户打开后,还,还允许允许其他用户以同种方式其他用户以同种方式打开打开。 可设置共享可设置共享/ /独占的独占的文件类型文件类型:DBCDBC和和DBFDBF。 独占的独占的目的目的:某些:某些命令要求命令要求;禁止禁止网络中网络中其他用户其他用户同时访问同时访问文件。文件。 共享的共享的作用作用:提高:提高数据利用率数据利用率,增

7、强程序的,增强程序的并行性并行性。7 / 21 设置设置DBCDBC和和DBFDBF文件的文件的打开方式打开方式。 Off Off 为共享为共享, OnOn为独占为独占( (系统默认系统默认) ) 。11.1.2 文件的独占与共享文件的独占与共享 1. 1. 设置设置打开方式打开方式:Set ExclusiveSet Exclusive On | On | OffOff 2. 2. 数据库文件数据库文件的独占的独占/ /共享共享 :Open Open DataBaseDataBase Exclusive Exclusive | | SharedShared 指定指定本数据库本数据库的独占的独占

8、( (ExclusiveExclusive) )或共享或共享( (SharedShared) ) 8 / 21 4.4. 程序有关文件程序有关文件:PRGPRG、SCXSCX、MNXMNX、MPRMPR和和QPRQPR,用,用DODO命令共享命令共享;用;用ModifyModify命令独占命令独占。 SQL SQL语句语句( (除除Create/Drop TableCreate/Drop Table外外) ) 涉涉及的及的表表打开方式与打开方式与Set ExclusiveSet Exclusive状态状态一致一致。FPTFPT、IDXIDX和和CDXCDX与与表表打开方式打开方式一致一致。 1

9、1.1.2 文件的独占与共享文件的独占与共享 3. 3. 表文件表文件的独占与共享的独占与共享 : Use Use Exclusive Exclusive | | SharedShared9 / 2111.1.3 要求独占打开文件的命令要求独占打开文件的命令 1. 1. 瞬间独占文件瞬间独占文件:创建文件的命令对:创建文件的命令对目标目标文件文件瞬间独占瞬间独占。 2. 2. 要求独占打开表要求独占打开表:PackPack、ZapZap、ReindexReindex。在在共享打开共享打开的表中执行这些命令,系统的表中执行这些命令,系统发生错误发生错误,出错类型出错类型编号为编号为110110。

10、对。对共享表共享表不能修改表结构不能修改表结构。 10 / 21加锁加锁:获取锁的过程。只有对:获取锁的过程。只有对共享表加锁共享表加锁才有才有实际意义实际意义。锁锁的的类型类型:文件锁文件锁和和记录锁记录锁。11.211.2 共享数据锁机制共享数据锁机制锁锁:系统对数据设置的:系统对数据设置的标志标志。在某时刻。在某时刻只有一只有一个用户个用户获得某数据的锁,获得某数据的锁,获得锁获得锁的用户才能的用户才能更新更新数据数据,其他用户只能查数据。,其他用户只能查数据。释放锁释放锁:取消锁的过程。:取消锁的过程。锁锁的的作用作用:避免多个用户同时:避免多个用户同时更新数据时发生更新数据时发生冲突

11、冲突,达到,达到保护数据保护数据的目的。的目的。11 / 2111.2.1 锁定记录及其设置锁定记录及其设置 锁记录成功的条件锁记录成功的条件 :非非文件文件结束记录结束记录、其他用户其他用户没锁定该记录没锁定该记录和和文件文件。 1. 1. 锁定当前记录锁定当前记录: R R LockLock(区号区别区号区别名名) 若若锁定当前记录锁定当前记录成功成功,则函数值为,则函数值为.T.T.,否则否则函函数值为数值为.F.F.。 应用背景应用背景:修改修改或或删除记录删除记录时锁定记录。时锁定记录。12 / 211) 1) Seconds Seconds :0 0 3200032000整数整数(

12、 (秒,秒,0 0不不重试重试) ) 。在。在时限内时限内若能若能锁定锁定,则,则函数返回函数返回.T.T.;若若超时超时,则函数,则函数返回返回.F.F. 。例例:Set Set ReprocessReprocess To To Seconds Seconds | | 11.2.1 锁定记录及其设置锁定记录及其设置 2. 2. 重试锁定处理方式重试锁定处理方式:若:若能锁定能锁定数据,则数据,则立即锁定立即锁定且函数且函数返回值返回值.T.T.;若;若不能不能锁定数据,锁定数据,则系统需要则系统需要重试多次重试多次锁定锁定 。Set Exclusive Off Set Exclusive O

13、ff Set Reprocess To Set Reprocess To 30 Seconds 30 Seconds & & 设置重试设置重试3030秒秒 Use CJB Use CJB Go 2 Go 2 ? Lock()? Lock() & & 锁第锁第2 2个记录,个记录,最多重试最多重试3030秒秒13 / 21 2) 2) 次数值为次数值为-2-23200032000的整数的整数 。 11.2.1 锁定记录及其设置锁定记录及其设置Set Reprocess ToSet Reprocess To -2 -2 & & 设置设置重试重试次数为次数为-2-2 Use CJB Shared U

14、se CJB Shared ? Lock()? Lock() & & 无限次重试,若无限次重试,若锁定锁定则输出则输出.T.T.; 若若按按EscEsc则输出则输出.F.F. -1 -1:无限次无限次重试,直到重试,直到锁定锁定,函数返回函数返回.T.T. 。 0 0或或-2-2:无限次重试无限次重试,直到,直到锁定锁定 ( (函数返回函数返回.T.T. ) )或用户或用户按按EscEsc键键终止锁终止锁 ( (函数返回函数返回.F.F. ) )。例例: 1 13200032000 :设置重试锁的:设置重试锁的次数次数。14 / 2111.2.1 锁定记录及其设置锁定记录及其设置 3. 3.

15、设置锁定多个记录设置锁定多个记录 Set Set MultiLockMultiLock OnOn | | OffOff 用用RLockRLock或或LockLock函数是函数是( (OnOn) )否否( (OffOff) )可以可以在在一个工作区一个工作区中同时锁定中同时锁定多个多个记录。记录。 Set Exclusive Off Set Exclusive Off Set Reprocess ToSet Reprocess To 5 5 & & 设置重试设置重试5 5次次Set Set MultiLockMultiLock On On & & 可同时锁定多个可同时锁定多个记录记录Use CJ

16、B Use CJB Go 2Go 2 ? Lock()? Lock() & & 锁第锁第2 2个记录个记录Go 5Go 5 ? Lock()? Lock() & & 锁第锁第5 5个记录,目前个记录,目前锁定第锁定第2 2和和5 5记记录录Set Exclusive Off Set Exclusive Off Set Reprocess ToSet Reprocess To 5 5 & & 设置重试设置重试5 5次次Set Set MultiLockMultiLock Off Off & & 不可同时锁定多个不可同时锁定多个记录记录Use CJB Use CJB Go 2Go 2 ? Lock

17、()? Lock() & & 锁第锁第2 2个记录个记录Go 5Go 5 ? Lock()? Lock() & & 锁第锁第5 5个记录,个记录,释放第释放第2 2个个记录的记录的锁锁15 / 21 在在Set Set MultiLockMultiLock OffOff下,只下,只锁定最后记锁定最后记录录,在,在Set Set MultiLockMultiLock OnOn下,下,锁定多个记录锁定多个记录。11.2.1 锁定记录及其设置锁定记录及其设置 4. 4. 一次锁定多个记录一次锁定多个记录 R R LockLock( , ) 若若锁定所有记录锁定所有记录,则函数返回,则函数返回.T.T

18、.;若;若锁锁某记录失败某记录失败,则,则不锁定不锁定任何任何记录记录且函数返回且函数返回.F.F. 。Set Exclusive Off Set Exclusive Off Set Reprocess ToSet Reprocess To 1 1 & & 设置重试设置重试1 1次次Set Set MultiLockMultiLock Off Off & & 不可同时锁定多个不可同时锁定多个记录记录Select 2Select 2Use CJBUse CJB? Lock( ? Lock( 1 1 , , 3 3 , , 4 4 , , 2) 2) * * 逐个锁第逐个锁第1 1、3 3和和4

19、4记录,记录,最后最后仅锁定第仅锁定第4 4个个Set Exclusive Off Set Exclusive Off Set Reprocess ToSet Reprocess To 1 1 & & 设置重试设置重试1 1次次Set Set MultiLockMultiLock On On & & 可同时锁定多个记可同时锁定多个记录录Select 1Select 1Use CJBUse CJB? Lock( ? Lock( 1 1 , , 3 3 , , 4 4 , , 2) 2) & & 锁定第锁定第1 1、3 3和和4 4个记录个记录16 / 21 锁定条件锁定条件:其他用户:其他用户没

20、锁定该表没锁定该表且没锁且没锁定其中定其中任何记录任何记录。 FlockFlock(|)11.2.2 锁定表文件锁定表文件 锁定内容锁定内容:表中:表中所有记录所有记录和和表结构表结构。 应用背景应用背景:增加增加或或删除记录删除记录时有必要时有必要锁定锁定表文件表文件。17 / 21 1. 1. 锁定表文件的命令锁定表文件的命令:执行下列命令时,:执行下列命令时,自动锁定自动锁定当前表;其后当前表;其后自动释放自动释放锁。若锁。若不能锁定不能锁定文件文件,则,则命令执行出错命令执行出错或或等待锁定等待锁定文件。文件。11.2.3 受锁机制影响的命令受锁机制影响的命令 DeleteDelete

21、( (删除多记录删除多记录) ) 、 Recall Recall ( (恢复多记录恢复多记录) ) 、Replace Replace ( (修改多记录修改多记录) ) 、Append FromAppend From、Append BlankAppend Blank 、SQLSQL语句语句Insert IntoInsert Into 。 18 / 21 2. 2. 锁定记录的命令锁定记录的命令:执行下列命令,:执行下列命令,自自动锁定动锁定要修改或删除的要修改或删除的记录记录;其后;其后自动释放自动释放锁。锁。若若不能锁定不能锁定,则,则命令执行出错命令执行出错或或等待锁定等待锁定记录。记录。1

22、1.2.3 受锁机制影响的命令受锁机制影响的命令 EditEdit 、ChangeChange 、BrowseBrowse 、DeleteDelete( (删除一个删除一个记录记录) ) 、 Recall Recall ( (恢复一个记录恢复一个记录) ) 、ReplaceReplace ( (修改一个记录修改一个记录) ) 。 SQLSQL语句语句Update Update 和和Delete FromDelete From 可能操作部分记录。可能操作部分记录。 19 / 21 实际应用实际应用:为确保更新:为确保更新( (修改修改、删除删除或或增加增加) )数据的正确性,数据的正确性,更新单

23、个记录前更新单个记录前,用,用LockLock函数函数锁定记录锁定记录;更新多个更新多个或或增加记录前增加记录前,用,用FlockFlock 函函数数锁定文件锁定文件。11.2.3 受锁机制影响的命令受锁机制影响的命令Set Exclusive Off Set Exclusive Off Set Reprocess To -1Set Reprocess To -1Use CJB Use CJB 5 5X=X=RLockRLock( )( ) & & 直到锁直到锁定记录定记录DeleteDeleteSet Exclusive Off Set Exclusive Off Set Reprocess

24、 To -1Set Reprocess To -1Use CJB Use CJB X=X=FLockFLock( )( ) & & 直到锁定文直到锁定文件件Update CJB Set Update CJB Set 实验成绩实验成绩=-1 Where =-1 Where 实验成绩实验成绩=0=0 20 / 21 锁的影响锁的影响:会:会降低降低程序更新数据的程序更新数据的并行效并行效率率。11.2.4 释放锁释放锁 1. 1. 自动释放自动释放锁的命令锁的命令 1)1) R R LockLock:释放释放对应工作区中的对应工作区中的文件锁文件锁。 2) 2) 在在Set Set MultiLo

25、ckMultiLock Off Off下,下, R R LockLock释放释放对应工作区中其他对应工作区中其他锁锁。 3) 3) Set Set MultiLockMultiLock由由OnOn转转OffOff,释放所有文件释放所有文件锁锁;若某工作区;若某工作区锁定多个记录锁定多个记录,则,则释放释放该区该区所有所有锁锁;对;对锁定一个锁定一个记录的工作区,记录的工作区,保留记录锁保留记录锁。21 / 2111.2.4 释放锁释放锁 2. 2. 释放锁的专用命令释放锁的专用命令 UnlockUnlock Record Record In In |AllAll 。 释放释放当前工作区当前工作区中的锁中的锁( (文件文件和和记录记录) )。释放释放指定记录指定记录的锁的锁 。释放释放所有工作区中所有工作区中的锁的锁 。22 / 21第第 11 章章 结结 束束谢谢 谢谢 !

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号