|
Find Percentage オペレーション(B_GET_PERCENT)は、スクロール バーを実装するウィンドウ指向のアプリケーションで使用することのできる 2 つの Btrieve API オペレーションのうちの 1 つです。もう 1 つのオペレーションは Get By Percentage オペレーション(44)です。Find Percentage では、キー パスまたはファイル内でのレコードの物理位置を基準として、それに対応するレコードのおおよその位置を検出します。位置はパーセンテージ値で表されます。パーセンテージ値の範囲の定義については、「結果」のセクションを参照してください。
メモ
Find Percentage を使って、キー パスを基準に対応するパーセンテージをシークする場合は、データ バッファー パラメーターに値を入力する必要はありません。ファイル内でのレコードの物理位置を基準に対応するパーセンテージをシークする場合は、キー バッファー パラメーターに値を入力する必要はありません。
Find Percentage オペレーションは、特にスクロール バーの実装をサポートする目的で用意されています。このオペレーションの精度、つまり、返されたパーセンテージ値がレコードまたはキー値の位置をどれだけ精確に反映しているかどうかは、さまざまな要因によって影響を受けます。このため、スクロール バーの実装以外の目的で使用する場合は、このオペレーションの精度を信頼しないでください。
Find Percentage オペレーションを最適化するため、トランザクショナル インターフェイスでは、ファイルのレコードはデータ ページ間に、キーはインデックス ページ間に均等に分布していることを前提としています。ただし、分布状態は次のような状況によって影響を受けます。
精度の設定はオプションで、パーセンテージを測定する要素を選択することができます。Pervasive PSQL 9 より前のリリースでは、この値は常に 10,000 でした。
精度を指定する場合は、以下の手順に従ってください。
Find Percentage オペレーションの精度を指定するには
たとえば、365 件のレコードが入っているファイルから 100 番目のレコードを取得したい場合、パーセンテージに 100、精度に 365 を使用して FindPercentage を実行することができます。
Find Percentage オペレーションが正常に終了した場合は、トランザクショナル インターフェイスによって、指定したキー値またはレコードの相対位置がデータ バッファーに返されます。この位置は、キー パスまたはファイルにおけるオフセットのパーセンテージとして表され、0(0 %)から 10,000(100.00%)までの範囲の値になります。これは、物理位置でも論理位置でもないので注意してください。
パーセンテージ値は、下位バイト、上位バイトの順の 2 バイト整数として返されます。たとえば、次のようになります。
また、オペレーションが正常に終了した場合には、トランザクショナル インターフェイスからデータ バッファー長に 4 が返されます。
Find Percentage オペレーションが正常に実行されなかった場合は、トランザクショナル インターフェイスから次のステータス コードのいずれかが返されます。
Find Percentage オペレーションを実行しても、カレンシー情報は変更されません。
|