|
Get Key バイアスを使用すると、実際にデータ レコードを取得することなく Get オペレーションを実行できます。Get Key を使って、ファイル内にある値が存在するかどうかを検出できます。一般に、Get Key オペレーションは対応する Get オペレーションよりも高速に実行できます。Get Key オペレーションは、以下のいずれかの Get オペレーションと共に使用します。
パラメーターは対応する Get オペレーションと同様です。ただし、トランザクショナル インターフェイスではデータ バッファー長の設定は無視され、データ バッファーにはレコードが返されません。
Get Key オペレーションの前提条件は、対応する Get オペレーションの前提条件と同じです。
トランザクショナル インターフェイスでは、Get Key オペレーション(+50)の後に Delete または Update オペレーションを実行することはできません。トランザクショナル インターフェイスで、Delete または Update オペレーションを実行する前に、変更しようとしているデータ ページの現在の使用回数と、レコードを読み取った時点のデータ ページの使用回数が比較されます。使用回数を取得するには、トランザクショナル インターフェイスがデータ ページを読み取る必要があります。
Get Key オペレーションではデータ ページを読み取らないので、Delete または Update オペレーションで比較するための使用回数が利用可能になりません。トランザクショナル インターフェイスでは、比較なしにパッシブ並行制御の矛盾チェックを実行できないため、Update または Delete オペレーションは正常に実行されません。Update または Delete オペレーションが正常に実行されないと、トランザクショナル インターフェイスからステータス コード 8 が返されます。
トランザクショナル インターフェイスで要求したキーが検出されると、そのキー値がキー バッファーに格納され、ステータス コード 0 が返されます。そうでない場合は、トランザクショナル インターフェイスからキー値を検出できなかった理由を示すステータス コードが返されます。
Get Key オペレーションを実行すると、対応する Get オペレーションと同様の方法で現在のポジショニングが確立されます。ただし、Get Key オペレーションの対象となるキーが重複を許可している場合、トランザクショナル インターフェイスでは取得された現在のキー値の重複インスタンスは無視されます。Get Key オペレーションの実行後、論理位置の直前は次に小さなキー値を含むレコードを指します。また、論理位置の直後は次に大きなキー値を含むレコードを指します。
たとえば、Smith が 8 回と Smythe が 1 回出現する姓のキーを対象に、Get Key を Get Equal オペレーション(55)と共に実行したとします。論理位置の直後は次の Smith ではなく、Smythe を指すことになります。
Get Key オペレーションではどれか 1 つのレコードが識別されるわけではないため、トランザクショナル インターフェイスでは Get Key オペレーションに続けて Update または Delete オペレーションを実行することはできません。
|