キー欄値指定子 (VMS のみ)

キー欄値指定子は,索引編成ファイル中の探査したい記録のキー欄を識別します。キー欄値はキー欄の内容に等しい値です。キー欄は索引編成ファイル中の記録位置を決定するので,これを使って記録を探査することができます。

キー欄は,番号,向き,長さ,バイト・オフセット,および欄の型といった属性を持ちます。キー欄の属性はファイルの作成時に指定されます。索引編成ファイル中の記録は,キー欄に関しては同じ属性を持っています。

キー欄値指定子は次の形式を取ります。

KEY[con] = val

con
val をキー欄値とどのように比較するかを指定する選択条件キーワード。キーワードは以下のいずれかです。

昇順キー・ファイルの場合
キーワード 意味
EQ キー欄値は val と等しくなくてはなりません。KEYEQ は,KEY を省略可能な要素の con なしに指定するのと同じです。
GE キー欄値は val 以上でなくてはなりません。
GT キー欄値は val よりも大きくなくてはなりません。
NXT キー欄値は,val 以上のキーの次の値でなくてはなりません。
NXTNE キー欄値は,val よりも大きいキーの次の値でなくてはなりません。
降順キー・ファイルの場合
キーワード 意味
EQ キー欄値は val と等しくなくてはなりません。KEYEQ は,KEY を省略可能な要素の con なしに指定するのと同じです。
LE キー欄値は val 以下でなくてはなりません。
LT キー欄値は val よりも小さくなくてはなりません。
NXT キー欄値は,val 以下のキーの次の値でなくてはなりません。
NXTNE キー欄値は,val よりも小さいキーの次の値でなくてはなりません。

val
整数または文字式です。式は,ファイルに対して定義されたキーの型に一致していなくてはなりません。整数キーの場合には整数式を渡す必要があります。実数または複素数のデータを含んでいてはなりません。文字列キーの場合,文字式か,文字データを含んでいる BYTE 配列を渡すことができます。

指定子 KEYKEYEQKEYNXT,および KEYNXTNE は,昇順キー・ファイルと降順キー・ファイルのどちらでも使用できます。ただし,KEYNXTKEYNXTNE は,ファイル中のキーの向きによって異なる意味に解釈されます。

  昇順キー・ファイル 降順キー・ファイル
指定子 次の指定子と等価
KEYNXT KEYGE KEYLE
KEYNXTNE KEYGT KEYLT

指定子 KEYGEKEYGT は昇順キー・ファイルでしか使用できず,指定子 KEYLEKEYLT は降順キー・ファイルでしか使用できません。これらのキー指定子を他の用途に使用すると,実行時エラーが発生します。

プログラムが昇順キー・ファイルと降順キー・ファイルのどちらをも利用できなくてはならない場合,KEYNXTKEYNXTNE を使用するようにしてください。

選択プロセス

キー欄整数値を選択するプロセスは,符号付き整数そのものを使って値を比較します。

キー欄文字値を選択するプロセスは,ASCII 大小順序を使って値を比較します1val の相対的な長さ,キー欄値,および指定された選択条件が,行われる選択の種類を決定します。選択には以下に示すように,正確選択,一般選択,および近似一般選択があります。

val がキー欄値よりも長い場合,選択は行われず実行時エラーが発生します。


1 これ以外の大小順序もあります。詳細については,『Guide to OpenVMS File Applications』を参照してください。