ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【IFASPRO RDB】IFASRDB表に追加したレコードの読み込み順について

質問内容

IFASRDB表に順呼び出しで複数のレコードを追加した後、順呼び出しで読み込んだ場合、追加したレコード順とは異なるレコード順でレコードが読み込まれることがありますか。

回答内容

編成により異なります。以下に編成ごとに順呼び出しでの処理について説明します。

(1) RDB順編成
IFASRDB表の設定や状態により、レコードの読み込み順は、レコード追加時の順番と異なる場合があります。
RDB順編成でのレコードの読み込み順は、物理レコード順であるため、レコード追加時の追加位置に依存します。レコード追加時の追加位置は、削除領域(備考①を参照)の有無により、以下のように異なります。
・削除領域がない場合
最後に出力したレコードの次の位置にレコードを追加します。そのため、読み込み時は必ず追加したレコードの順で読み込まれます。
・削除領域がある場合
既定の設定(備考②を参照)では、削除領域に優先的にレコードを追加します。この場合、読み込み時は追加したレコード順で読み込まれるとは限りません(後から追加したレコードが先に読み込まれることがあります)。
削除領域未使用の設定(備考②を参照)の場合、「削除領域がない場合」と同様の結果となり、読み込み時は追加したレコードの順で読み込まれます。

(2) RDB相対編成
レコードの読み込み順は、レコード追加時の順番になります。
RDB相対編成でのレコードの読み込みの順は相対キー(レコード番号)の昇順で行われます。また、レコード追加は、追加前の最大レコード番号の次のレコード番号の位置に追加します。そのため、読み込み時は必ず追加したレコードの順で読み込まれます。
なお、RDB相対編成は利用者が(削除されたレコードのレコード番号も含めて)常にレコード番号を意識して使用する編成のため、削除領域を使用するか否かは利用者に任せられています。

(3) RDB索引順編成
レコードの読み込み順は、読み込み時に指定するキーに依存しますので、追加時の順番と異なる場合があります。

(備考)
①削除領域とは、レコード削除が行われ、そのレコードの存在した領域が再利用されていない領域です。なお、以下の方法でIFASRDB表内の全レコードを削除する場合は、削除領域は作成されません。
・表定義ユーティリティの「ツール」→「データ全件削除」を使用する。
・IFRDBUTL.EXE(表定義ユーティリティコマンド)の「データの全件削除機能」を使用する。
・出力モードでオープンする。

②以下のいずれかの方法でレコード追加時に削除領域を使用しない設定とすることが可能です(既定値は「削除領域使用」)。
・ファイル管理ユーティリティで該当ファイル(IFASRDB表を構成する索引順編成ファイル)のプロパティで「レコード追加方式」を「削除領域未使用」に変更する。
・IFASFATR.EXE(レコード追加方式変更コマンド)で該当ファイルを「削除領域を使用しない」設定とする。
なお、削除領域を使用しない設定とした場合、レコード削除を繰り返した場合、使用されない領域が蓄積されファイルが肥大化します。そのため、定期的なファイルの再編成(IFRDBUTL.EXEによる""GARBAGE"")を行うことを推奨します。


製品名カテゴリ

COBOL

対象製品

品名: IFASPRO RDB V2.0
型番: UL1019-106
品名: IFASPRO RDB Ver1.0
型番: UL1019-006
  • コンテンツID: 3150114939
  • 公開日: 2020年07月31日
  • 最終更新日:2020年07月31日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。