質問

私のコードは次のようになります:

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

これは、ecodeがキーとしてecodeを備えたレコード形式の名前を備えたEMPという名前のファイルです...

今、私がファイルを読んでからsetGTを使用せずにエコードを更新しているとき、ポインターが先に動いていません。

セットGTポインターを使用すると、次のレコードが選択されますが、2つのエコード値が同じである場合は機能します...それ以外の場合は、キー値の下降では動作しません...

値が同じか、上昇するか、下降するかに関係なく、ポインターを設定できるように解決策はありますか。

役に立ちましたか?

解決

ファイル「EMP」の各レコードの「ecode」フィールドを更新したいのですが、それは正しいですか?もしそうなら、「setGT」なしで別の「読み取り」を使用するだけで、それは正常に行われます。

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 

他のヒント

すべてのレコードのキー値を更新する場合は、到着シーケンスでファイルを開く必要があります(F-Specの「K」を使用しないでください)。また、レコードをスキップしようとしている場合を除き、ループ内でsetGTを使用しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top