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の処理を誤解していることになる。