1

我的代码是这样的:

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 值相同时它不起作用......否则它也不会使用降序键值......

是否有任何解决方案,以便我可以设置指针,而不管值是否相同或升序或降序。

4

2 回答 2

1

您想更新文件“emp”中每条记录中的“ecode”字段 - 是否正确?如果是这样,只需使用另一个没有 'setgt' 的 'read' 就可以了。

uf e k disk
c *loval setll emp
c read emp
c dow not %eof(emp)
C eval ecode = ecode + 10
c update recemp

c read emp

c enddo
c eval *inlr=*on 
于 2010-04-23T14:27:18.083 回答
1

如果要更新每条记录中的键值,则应按到达顺序打开文件(不要使用 F-spec 中的“k”)。此外,除非您特别尝试跳过记录,否则不要在循环内使用 SETGT。

于 2010-04-28T05:16:55.233 回答