check记录是否被lock住.

发布于 2022-09-10 00:15:18 字数 35 浏览 11 评论 9

我想在update记录前判断记录是否被lock; 用什么方式比较简单.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

幻梦 2022-09-15 08:51:47

LZ概念有没有搞清楚先?
要UPDATED的必要条件,必须是记录被锁,也就是对应之前的操作一定要有CHAIN 或者READ的动作去读到记录并且锁住记录
如果你非要说判断的话,那你UPDATE后面加个指示器去判断UPDATE是否成功

锦欢 2022-09-15 08:51:47

如果非要判断的话,用%status ba

酒绊 2022-09-15 08:51:47

在UPDATE之前会用到Chain:
CL0N01Factor1+++++++Opcode&ExtFactor2+++++++Result++++++++Len++D+HiLoEq
C     KEY         CHAIN  RFM                                                                                        53   

Hi位的indicator指示记录是否存在
Lo位的indicator指示记录是否正在被使用 ,*ON表示正在被使用
Eq位好象是错误指示,不太记得了

疯到世界奔溃 2022-09-15 08:51:47

顶一下

妞丶爷亲个 2022-09-15 08:51:47

我想他要表达的意思是之前是否有锁这条记录的

ㄖ落Θ余辉 2022-09-15 08:51:47

顶!

chain操作,lo指示器就是记录锁指示器。
如果别的JOB锁住某条记录,当前程序chain的时候不会等待解锁,而是直接执行下一条语句。此时lo指示器为*on

如果lo处为空,则chain语句会以阻塞的方式等待该条记录解锁,或者超时。

々眼睛长脚气 2022-09-15 08:51:47

在程序里面判断记录是否被锁, 建一个FILE INFORMATON DATA STRUCTURE:

FMYFILE    IF   E           K DISK                     
F                                     INFDS(FIDS01)   
。。。
D FIDS01          DS                                            
D  STS01            *STATUS               

读记录后检查字段 STS01 的返回值,如果是  1218 就表示记录被锁。

在命令行检查,用

DSPRCDLCK 命令。

回眸一遍 2022-09-15 08:51:46

CHAIN WITH OUT LOCK 好像是CHAIN N  再相应判断指示器,具体查IBM红皮书,有例子

烦人精 2022-09-14 23:04:34

In older RPG you can use *PSSR.  In a newer program u can use a MONITOR block.

But in usual, before update a record, we need lock it, if it is locked successful, then update it.
if locked unsuccessful, report it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文