今回も、内部テーブルについてです。
次回からは、別の話題にしたいと思います。
前回、内部テーブルのレコードを操作するためには、
『基本的』に作業領域に読み込み→値を編集→内部テーブルへ
反映のステップが必要です。と書き込みましたが、
内部テーブルのあるレコードを更新する場合に、限って
「作業領域に読み込み→値を編集」のステップで、
値を更新する方法があります。
それには、フィールドシンボルを使います。
フィールドシンボルとは、C言語でいうポインタのようなもので、
内部テーブルのあるレコードを直接参照することが可能になります。
例)Data: itab Type Standard Table of mara.
Field-symbols: <fs> type mara.
Select *
Into Table itab
From mara.
Loop At itab assigning <fs>.
<fs>-zitem = ‘X’.
Endloop.
前回の「データベースから取得した内部テーブルの値を更新」を
フィールドシンボルを使った場合のソースです。
内部テーブルのレコード件数が、300件弱くらいまでは、
ほどんど「Modify命令」を使う場合とパフォーマンスは
変わらないらしいですが、それ以上の件数になると
フィールドシンボルを使ったほうがパフォーマンスが
よいらしいので、お試しあれ。
