相対バイト アドレスを使用してファイルから具体的なレコードを読み取る方法には 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 (直接) 操作を実行して、このアドレスのレコードを返します。これで、参照キーは新しいキーに変更されます。
- ファイルの次のレコードを読み取ります。このレコードは、新しい参照キーの索引にある次のレコードです。