新規のレコードの作成ではなく、リンクを既存のレコードへのアクセス(照会、修正)に使用する場合、リンクされているレコードのうち、インデックスセグメントの値とリンク条件(そのリンクの総合条件)から返った値が一致するレコードが見つかった時、リンクは成功したと判断されます。この場合、[戻り値]特性には「True(論理型)」または「0(数値型)」が返ります。一方、値が一致するレコードが見つからなかった場合は、「False(論理型)」または「1(数値型)」が返ります。
リンクの値の照合条件としては、次の4種類を指定することができます。
ユニーク値による照合 …… 単一の特定のインデックス値を使用して照合を行う方法で、この場合、項目特性の[位置付 最小]特性と[位置付 最大]特性の両方に同じ式を指定します。この方法が標準です。
範囲による照合 …… 範囲を指定して値を照合する方法です。この場合、項目特性の[位置付 最小]特性と[位置付 最大]特性に異なる位置付式を指定します。この設定では、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲の最初のレコードに対してリンクが設定されます。なお、この照合の場合、[リンク特性]の[方向]特性を使用して、リンクテーブルのレコードに対するアクセスの方向を指定できます。つまり、指定された範囲のレコードのうち、値が一致する最初のレコードにリンクを設定するか、または最後のレコードにリンクを設定するかを指定できます。
部分照合 …… インデックスがマルチセグメントの場合、リンクに使用したいセグメントを指定して照合を行う方法です。この方法では、照合に使用したいインデックスセグメントの[項目特性]で、位置付式(最小/最大)を指定します。この場合、リンクテーブルのレコードのうち、インデックスセグメントの値が指定した範囲にある最初のレコードに対してリンクが設定されます。
拡張照合 …… 以上のように、位置付式は、一般にリンクに使用したいインデックスセグメントの項目特性で指定しますが、そのほか、次のような設定も可能です。
[リンク]コマンドでインデックスを指定すると、そのインデックスのセグメントに対応するデータ項目が作成されます。この項目特性で位置付式(最小/最大)を指定できます。リンクの中では、このほかにも必要に応じて項目(実データ項目または変数項目)を指定し、その項目に対して位置付式(最小/最大)を指定できます。こういった位置付式を指定した場合、指定した位置付式が全て満足された時に初めて、リンクが設定されます。
位置付け指定をインデックスセグメント項目で行った場合と、それ以外の項目で行った場合とでは、値の照合方法が異なります。標準のインデックスセグメントに定義した場合、検索はインデックスを使用して高速に行われます。一方、それ以外の項目に定義した場合は、値の照合がインデックスセグメントの値が一致したところから順次検索で実行されます。
リンクの中では、データ項目(実データ項目または変数項目)を定義し、その項目に対して範囲式(最小/最大)を指定できます。こういった項目が複数ある場合、各コマンドの範囲式は全てタスクの実行時に評価されます。(データ項目がメインソースに関連しているか、リンクテーブルに関連しているかは無関係です。)
その後、リンクが設定され、リンクされたレコードの項目がデータビューに追加されます。最後に、範囲式が指定されている項目に対して、範囲内にあるかどうかがチェックされます。範囲内に無いレコードはスキップされ、次のレコードのチェックが実行されます。