RPG

240. もう一度サブ・ファイル (5)

よく見るサブ・ファイルの誤った使い方を紹介する。

【誤り 1】SFLINZ してから SFLレコードを更新する

これは先に説明したとおり。SFLレコードを追加することが目的であるのに
あえて SFLINZ で SFLレコードを充満させておいてから、SFLレコードを
更新していくという方法である。
原因は SFLINZ の意味をよく理解しないままコーディングしてしまったことによる。

【誤り 2】SFLPAG と SFLSIZ を同じ数にする

これも時々見かける誤った使い方である。SFLPAG の数と SFLSIZ の数を
同じ数にしてしまうとサブ・ファイルを利用するメリットはあまりなくなってしまう。
正しいサブ・ファイル記述をしていればROLLUPの処理だけの記述だけで済むが
SFLPAG=SFLSIZ としてしまうとROLLDWN の処理も記述しなければならない。
処理はより複雑になってしまう。

【誤り 3】SFLSIZ を大きくして最初にSFLレコードをすべて出力してしまう

例えば SFLSIZ = 3000 のように大きな値にしておいて最初のデータの読込みで EOF となるまで
SFLレコードを出力してしまう、といった方法である。
例えば対象データが 2000件あれば最初に一度に 2000件出力してしまう方法である。
この方法であればエンド・ユーザーは自分が求めるデータは最初のページにあったとしても
2000件のSFLレコードが出力されるまで、じっと我慢して待たなければならない。
「SFLはパフォーマンスが悪い」と言う開発者はこの誤りで開発していることになる。
正しいSFL処理であれば、最初は 1ページ分だけ表示して、見つからなければ
ROLLUPキーを押せば次のページを表示されるように作られているのでパフォーマンスに優れ
無駄な読込みを行うこともないのである。

上記の(1)〜(3)に該当する処理はなかっただろうか ?
もしあればSFLの処理を誤解していることになる。