次の方法で共有


JetPrereadKeys 関数

適用対象: Windows |Windows Server

JetPrereadKeys 関数

JetPrereadKeys 関数は、バージョン ストアのクリーンアップのパフォーマンスを向上させるためにキー値を読み取ります。

Windows 7: PrereadKeys 関数が Windows 7 で導入されました。

    JET_ERR JET_API JetPrereadKeys(
      __in JET_SESID sesid,
      __in JET_TABLEID tableid,
      __in_ecount(ckeys) const void ** rgpvKeys,
      __in_ecount(ckeys) const unsigned long * rgcbKeys,
      __in long ckeys,
      __out_opt long * pckeysPreread,
      __in JET_GRBIT grbit
     );

パラメーター

sesid

API 呼び出しに使用するデータベース セッション コンテキスト。

tableid

この呼び出しに使用するカーソル。

rgpvKeys

キーへのポインターの配列。 キーは、 JetMakeKey を使用して作成することも、 JetGetBookmark を使用して取得することもできます。 渡される grbit に応じて、キーを昇順または降順で並べ替える必要があります。 キーは memcmp で並べ替えることができます。

rgcbKeys

キーの長さの配列。 rgpvKeys[n] は長さのキーを指す必要があります rgcbKeys[n]

ckeys

キーの数。 rgpvKeys と rgcbKeys は、少なくとも ckeys 要素を持つ配列を指す必要があります。

pckeysPreread

プリスレッドが実際に発行されたキーの数を返します。 このパラメーターは、NULL でもかまいません。

grbit

これは、JET_bitPrereadForwardまたはJET_bitPrereadBackwardである必要があります。 grbit がJET_bitPrereadForward場合は、キーを昇順で並べ替える必要があります。 grbit がJET_bitPrereadBackward場合は、キーを降順で並べ替える必要があります。

戻り値

この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。

次の API 使用エラーと共に、さまざまな I/O エラーを返すことができます。

リターン コード

説明

JET_errInvalidGrbit

Grbit はJET_bitPrereadForwardでもJET_bitPrereadBackwardでもありません。

JET_errInvalidBufferSize

正しくないキー サイズが渡されました。 キーは、テーブルの最大キー長を 0 以上にすることはできません。

JET_errInvalidParameter

無効なパラメーターが渡されました。 これは、必要なパラメーターの null 値が原因で発生する可能性があります。または、キー配列が正しく並べ替えされていないことを示している可能性があります。

JetPrereadKeys は、b ツリーの内部ページを走査して、rgpvKeys/rgcbKeys で指定されたキーを含むリーフ ページを決定します。 リーフ ページの一覧が並べ替えられた後、ページの範囲に対してプリスレッドが発行されます。 プレ読み取り可能なページの数は限られているため、すべてのキーがプレ読み取りできるわけではありません。 その場合、実際にプリスレッドされるキーの数は pckeysPreread で返されます。

要件

要件

Client

Windows 7 が必要です。

[サーバー]

Windows Server 2008 R2 が必要です。

Header

Esent.h で宣言されています。

Library

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。