相対バイト アドレスを使用してファイルから特定のレコードを読み取るには、2 つの方法があります。
- FCD の fcd-reladdr-offset または fcd-reladdr-big にアドレスを格納し、FCD の fcd-config-flags にビット 6 を設定します。現行のレコード ポインターを更新する場合は、fcd-config-flags にビット 5 を設定します。
- ファイルに対して、READ (ランダム) WITH NO LOCK、READ (ランダム) WITH LOCK、READ (ランダム) WITH KEPT LOCK、または READ (ランダム) 操作を実行します。
READ (直接) 操作も同様に機能しますが、FCD にビットを設定する必要はありません。READ (直接) 操作では、常に FCD の相対バイト アドレス フィールドで指定されたアドレスのレコードを返し、現行のレコード ポインターを更新します。
上記のどちらの方法でも、現行の参照キーを別のキーに切り替えられます。たとえば、主キーにより READ (順次) 操作を行う場合に以下の手順を実行すると、現在のレコードから最初の副キーによる読み取りを開始できます。
- ファイルの次のレコードを読み取ります (このレコードのアドレスは、FCD の相対バイト アドレス フィールドで指定します)。
- FCD の fcd-key-id に新しい参照キーを格納します。
- READ (直接) 操作を実行して、このアドレスのレコードを返します。これで、参照キーは新しいキーに変更されます。
- ファイルの次のレコードを読み取ります。このレコードは、新しい参照キーの索引内の次のレコードです。