免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chen405
打印 上一主题 下一主题

EXCEPT 命令的问题!!! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-11-23 10:15 |只看该作者

回复 #9 wangluopachong 的帖子

如果在F表里定义为U类型,CHAIN就会加锁,
这个锁会一直锁着,直到:
1)纪录被更新
2)程序读同一表的别的纪录,这样就解锁旧纪录,锁住新记录。
3)执行解锁操作 UNLOCK, EXCEPT
4)程序运行结束
正常程序设计是不可以长期锁住纪录(不超过1分钟)。不然在多用户环境里会造成其他作业的程序崩溃。

不解锁,就是“占着茅坑不拉屎”,要知道这“茅坑”可是公用的呢。系统缺省值允许作业占用“茅坑”一分钟。

一个作业等待一分钟还进不了茅坑,就成了*MSGW 状态,除非你自己用EXCEPTION逻辑处理它。

[ 本帖最后由 franliu 于 2009-11-23 10:59 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2009-11-23 10:33 |只看该作者

回复 #8 passthru 的帖子

对了。UNLOCK 是解自己的锁,让其他作业可以更新这个纪录。你不解锁, 就是“占着茅坑不拉屎”,要知道这“茅坑”可是公用的呢。

你按我教你的办法,DUBUG 样板程序,单步执行,并且用另一个5250对话用DSPRCDLCK检查每一步锁的状态,就明白啦。

[ 本帖最后由 franliu 于 2009-11-23 10:37 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2009-11-23 11:33 |只看该作者
有UPDATE数据的时候,程序必须是带锁读这个数据库,不然会出错的。

论坛徽章:
0
14 [报告]
发表于 2009-11-23 11:38 |只看该作者
没用过EXCEPT,如何用EXCEPT解锁呢?

论坛徽章:
0
15 [报告]
发表于 2009-11-23 12:47 |只看该作者

回复 #14 giggsone 的帖子

就是执行一个EXCEPT.  以前旧版本的RPG没有UNLOCK这个操作,只好用EXCEPT.

在O表里面定义一个EXCPT:

      OXXXXXXXXE                EXP_NM
   
XXXXXXXX 是纪录名。  EXP_NM 是 EXCEPT名。

O表中可以续行列明序号更新的字段名。列出的会被更新,没有列出的会保持不变。
如果O表中一个字段也没有列出,那么这个EXCEPT就是为解锁而设的。

在C表中执行  EXCPT (rpg) 或 EXCEPT (ILE RPG)纪录就更新了或者解锁了

论坛徽章:
0
16 [报告]
发表于 2009-11-23 15:25 |只看该作者

回复 #15 franliu 的帖子

谢谢,如果列出几个字段,是不是运行EXCEPT的时候,先更新列出的字段,然后解锁呢

论坛徽章:
0
17 [报告]
发表于 2009-11-23 15:34 |只看该作者

回复 #9 wangluopachong 的帖子

china会不会加锁还得看看文件是怎么申明的...unlock是解除文件的锁,文件不一定是自己程序加的锁.

论坛徽章:
0
18 [报告]
发表于 2009-11-23 15:39 |只看该作者

回复 #16 giggsone 的帖子

对了。任何对纪录的更新都会解锁。没有字段的EXCEPT可以理解为一个DUMMY的更新。RPG刚刚出来的时候是没有UPDATE的,只有用O表来做更新。后来才有了UPDATE和UNLOCK.

UNLOCK比较好用,哪怕没有锁,开锁没有关系。

如果用except,没有锁你要开锁,系统就报错了。

论坛徽章:
0
19 [报告]
发表于 2009-11-23 15:44 |只看该作者

回复 #17 huangxkst 的帖子

china会不会加锁还得看看文件是怎么申明的--- 对。只有U型的文件才会加锁。只读文件没有锁。


...unlock是解除文件的锁,文件不一定是自己程序加的锁. --- 错。

1)解开的是纪录的锁,不是文件的锁。 文件的锁要等文件关闭才能解开
2)只能解开自己加上的锁。别人加上的锁只有别人自己可以解开。
3)你想解开别人的锁,除非杀了别人

论坛徽章:
0
20 [报告]
发表于 2009-11-23 16:07 |只看该作者

回复 #18 franliu 的帖子

呵呵,谢谢,又学了一招
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP