次の方法で共有


JetGotoSecondaryIndexBookmark 関数

適用対象: Windows |Windows Server

JetGotoSecondaryIndexBookmark 関数

JetGotoSecondaryIndexBookmark 関数は、指定されたセカンダリ インデックス ブックマークに関連付けられているインデックス エントリにカーソルを置きます。 セカンダリ インデックス ブックマークは、最初に取得されたのと同じテーブルに対して同じインデックスで使用する必要があります。 インデックス エントリのセカンダリ インデックス ブックマークは、 JetGotoSecondaryIndexBookmark を使用して取得できます。

Windows XP:JetGotoSecondaryIndexBookmark は Windows XP で導入されています。

    JET_ERR JET_API JetGotoSecondaryIndexBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvSecondaryKey,
      __in          unsigned long cbSecondaryKey,
      __in_opt      void* pvPrimaryBookmark,
      __in          unsigned long cbPrimaryBookmark,
      __in          const JET_GRBIT grbit
    );

パラメーター

sesid

この呼び出しに使用するセッション。

tableid

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

pvSecondaryKey

カーソルの位置を指定するために使用するセカンダリ キーを含むバッファー。

cbSecondaryKey

バッファー内のセカンダリ キーのサイズ。

pvPrimaryBookmark

カーソルの位置を指定するために使用する主キー ブックマークを含むバッファー。

cbPrimaryBookmark

バッファー内の主キー ブックマークのサイズ。

grbit

次のオプションの 0 個以上を指定するビットのグループ。

説明

JET_bitBookmarkPermitVirtualCurrency

インデックス エントリが見つからない場合は、そのインデックス エントリが以前に見つかった場所にカーソルが置かれます。 操作は引き続きJET_errRecordDeletedで失敗します。ただし、不足しているインデックス エントリを基準にして、次または前のインデックス エントリに移動できます。

戻り値

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

リターン コード

説明

JET_errSuccess

操作は正常に完了しました。

JET_errClientRequestToStopJetService

JetStopService の呼び出しの結果、セッションに関連付けられているインスタンス上のすべてのアクティビティが停止したため、操作を完了できません。

JET_errInstanceUnavailable

セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。これは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したためです。

Windows XP: この戻り値は Windows XP で導入されています。

JET_errInvalidBookmark

指定されたセカンダリ インデックス ブックマークが無効でした。 このエラーは、セカンダリ キーが 0 であるか、セカンダリ キー バッファー ポインターが NULL であるために発生した可能性があります。 このエラーは、次の理由で発生します。

  • 現在のセカンダリ インデックスには一意性制約がないため、指定されたブックマークのサイズは 0 です。

  • ブックマーク バッファー ポインターが NULL です

JET_errNoCurrentIndex

カーソルは現在セカンダリ インデックス上にありません。 カーソルが現在セカンダリ インデックスを使用していない場合、セカンダリ インデックス ブックマークに移動することは意味がありません。 カーソルがセカンダリ インデックスにない場合は、JetGotoBookmark を使用する必要があります。

JET_errNotInitialized

セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。

JET_errRecordDeleted

セカンダリ インデックス ブックマークに関連付けられているインデックス エントリが見つかりませんでした。

JET_errRestoreInProgress

セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。

JET_errSessionSharingViolation

同じセッションを複数のスレッドに同時に使用することはできません。

Windows XP: この戻り値は Windows XP で導入されています。

JET_errTermInProgress

セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。

この関数が成功すると、カーソルは、指定したセカンダリ インデックス ブックマークに関連付けられているインデックス エントリに配置されます。 レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルで使用する検索キーが作成されている場合、その検索キーは削除されます。 データベースの状態は変更されません。

この関数が失敗した場合、JET_errRecordDeletedが返され、JET_bitBookmarkPermitVirtualCurrencyが指定されていない限り、カーソルの位置は変更されません。 その場合、カーソルは、指定されたセカンダリ インデックス ブックマークに関連付けられているインデックス エントリが配置された場所に配置されます。 カーソルは、その位置を基準にして移動できますが、有効なインデックス エントリ上にありません。

レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルで使用する検索キーが作成されている場合、その検索キーは削除されます。 いずれの場合も、データベースの状態は変更されません。

要件

要件

Client

Windows Vista または Windows XP が必要です。

[サーバー]

Windows Server 2008 または Windows Server 2003 が必要です。

Header

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

Library

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。

参照

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetSecondaryIndexBookmark
JetGotoBookmark
JetStopService