更新 rpgle 中的键值时处理指针
我的代码是这样的:
femp uf e k disk
dvar1 s 5p 0
c *loval setll emp
c read emp
c dow not %eof(emp)
C eval ecode = ecode + 10
c eval var1=ecode
c update recemp
c var1 setgt emp
c read emp
c enddo
c eval *inlr=*on
这是一个名为 emp 的文件,其记录格式名称为 recemp,以 ecode 为键...
现在,当我读取该文件,然后在不使用 setgt 的情况下更新 ecode 时...指针没有向前移动,它是多次更新相同的 ecode 值...
现在,当我使用 set gt 指针选择下一条记录时,但当两个 ecode 值相同时它不起作用...否则它也无法使用降序键值...
是否有任何解决方案,以便我可以设置指针,无论值是否相同、升序或降序。
my code goes like this:
femp uf e k disk
dvar1 s 5p 0
c *loval setll emp
c read emp
c dow not %eof(emp)
C eval ecode = ecode + 10
c eval var1=ecode
c update recemp
c var1 setgt emp
c read emp
c enddo
c eval *inlr=*on
Here is a file named emp with record format name recemp with ecode as the key ...
Now when i am reading the file and then updating the ecode without using setgt ..the pointer is not moving ahead it is updating the same ecode value many time ...
Now when i use set gt pointer picks the next record but it dint work when two ecode values are same ...else also it will not be working with descending key values...
Is there any solution so that i can set pointer regardless of the fact whether the values are same or ascending or descending.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您想要更新文件“emp”中每条记录中的“ecode”字段 - 这是正确的吗?
如果是这样,只需使用另一个不带“setgt”的“read”就可以了。
You want to update 'ecode' field in each record in file 'emp' - is that correct?
If so, just use another 'read' without 'setgt' and it will do just fine.
如果要更新每条记录中的键值,则应按到达顺序打开文件(不要使用 F-spec 中的“k”)。另外,不要在循环内使用 SETGT ,除非您专门尝试跳过记录。
If you want to update the key value in every record, you should open the file in arrival sequence (don't use the 'k' in the F-spec). Also, don't use SETGT inside the loop unless you specifically are trying to skip records.