RPGLEでキー値を更新する際のポインターの処理
-
01-10-2019 - |
質問
私のコードは次のようになります:
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を使用しないでください。
所属していません StackOverflow