| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:如何在网络环境中确认表可以独占打开?
只看楼主 加入收藏
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:12 
如何在网络环境中确认表可以独占打开?
我想做一个能在网络环境中使用的系统,中间涉及有的权限需要删除记录,想在进行操作前,确认有无人在使用该表,USED()函数适用于本机还是也适用于网络环境?用锁定从理论上也不可能达到我想要的效果,求教。请各位大侠不吝赐教,先谢。
搜索更多相关主题的帖子: 网络 如何 
2012-05-24 19:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
共享模式下删除记录不需要独占,用RLOCK()函数尝试锁定该记录,如果锁定成功,返回.T.,此时即可删除,若返回.F.,表示有人在使用这条记录,可以循环尝试直至成功,或者隔一段时间重试。共享环境下,没有理由独占数据库的,独占之下,别人根本无法打开,等于取消共享,尽量不要使用。共享模式的程序设计,每个使用数据库的操作都不要长期霸占数据,把副本提取出来慢慢处理,完后写回去,这样才能减少冲突的机会。

授人以渔,不授人以鱼。
2012-05-24 19:45
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
收藏
得分:0 
谢谢,但我的删除是要求物理删除,你这种方式是不是逻辑删除?
2012-05-25 15:12
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
收藏
得分:0 
谢谢,但我的删除是要求物理删除,你这种方式是不是逻辑删除?
2012-05-25 15:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我不知道你有什么充分的理由要做物理删除。

授人以渔,不授人以鱼。
2012-05-25 17:21
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
收藏
得分:0 
回复 5楼 TonyDeng
这是帮朋友做的一个资料管理系统,如果要留后手的话,需要清除有关资料的时候,就非常有必要了。朋友要求总是要尽量满足嘛。
2012-05-25 18:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
要留后手也不用在平时操作时物理删除东西,那种机会有的是,不必在普通操作中做的。

授人以渔,不授人以鱼。
2012-05-25 18:43
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
收藏
得分:0 
回复 7楼 TonyDeng
老大:朋友是只会用的人!我又不可能守在他身边,交给他就不管了。我现在先用FLOCK()尝试锁定,锁定后试图独占打开,后PACK。但这肯定不能解决问题,万一有人在浏览,这肯定行不通。所以才求教。别吊胃口了,说说吧。
2012-05-25 20:01
xdzhhq
Rank: 2
等 级:论坛游民
帖 子:32
专家分:33
注 册:2011-11-23
收藏
得分:0 
回复 7楼 TonyDeng
老大:朋友是只会用的人!我又不可能守在他身边,交给他就不管了。我现在先用FLOCK()尝试锁定,锁定后试图独占打开,后PACK。但这肯定不能解决问题,万一有人在浏览,这肯定行不通。所以才求教。别吊胃口了,说说吧。
2012-05-25 20:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
你在程序启动或结束的时候,尝试独占数据库,因为尽管是网络共享,但不会任何时刻都有人在用的,只要当前这个程序是当天第一个启动或最后一个结束的时候,就会独占成功,然后可以做你想做的事。如果真是有那么多人时刻在用,那么可以设置一个触发条件,比如时间或计数器、外部文件消息之类,每个程序一检测到它,启动异常行为代码……

授人以渔,不授人以鱼。
2012-05-25 20:28
快速回复:如何在网络环境中确认表可以独占打开?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021540 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved