JetGetBookmark 関数

適用対象: Windows | Windowsサーバー

JetGetBookmark 関数

JetGetBookmark 関数は、カーソルの現在位置にあるインデックス エントリに関連付けられているレコードのブックマークを取得します。 このブックマークを使用して 、JetGoToBookmarkを使用して、そのカーソルを同じレコードに戻します。

    JET_ERR JET_API JetGetBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out_opt     void* pvBookmark,
      __in          unsigned long cbMax,
      __out_opt     unsigned long* pcbActual
    );

パラメーター

sesid

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

tableid

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

pvBookmark

ブックマークを受け取る出力バッファー。

cbMax

出力バッファーの最大サイズ (バイト単位)。

[ビジュアル]

ブックマークの実際のサイズ (バイト単位)。

このパラメーターが NULL の 場合、ブックマークの実際のサイズは返されません。

出力バッファーが小さすぎる場合でも、ブックマークの実際のサイズは返されます。 つまり、この数値は出力バッファーのサイズよりも大きくなります。

戻り値

この関数は、次 JET_ERRのいずれかの 戻り値を持つデータ型を返します。 考えられる ESE エラーの詳細については、「 Extensible Storage Engine Errors 」および「エラー処理パラメーター 」を参照してください

リターン コード

説明

JET_errSuccess

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

JET_errBufferTooSmall

操作は正常に完了しましたが、出力バッファーが小さすぎてブックマーク全体を受け取れなすぎます。 出力バッファーには、必要な数のブックマークが入力されています。 要求された場合は、ブックマークの実際のサイズも返されます。

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

Windows XP:この戻り値は、XP でWindowsされます。

JET_errNoCurrentRecord

カーソルはレコードに配置されません。 これはさまざまな理由から起こります。 たとえば、カーソルが現在のインデックスの最後のレコードの後に配置されている場合に発生します。

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

Windows XP:この戻り値は XP でWindowsされます。

JET_errTermInProgress

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

この関数が成功すると、カーソルの現在位置にあるインデックス エントリに関連付けられているレコードのブックマークが出力バッファーに返されます。 データベースの状態に変更は発生しません。

この関数が失敗した場合、出力バッファーの状態とブックマークの実際のサイズは、返JET_errBufferTooSmallされません。 JET_errBufferTooSmall が返された場合、出力バッファーには、指定された領域に収まるのと同じ数のブックマークが含まれます。ブックマークの実際のサイズは正確です。 データベースの状態に変更は発生しません。

注釈

ブックマークは通常、データの不透明なチャンクとして扱う必要があります。 このデータの内部構造を悪用する試みは行う必要はありません。 ただし、次の条件は、すべての ESENT ブックマークに当てはまる場合です。

  • ブックマークは、特定のテーブル内のレコードを一意に識別します。

  • レコードのブックマークは、そのレコードの有効期間中は変更されません。

  • レコードのブックマークは、そのレコードを含むテーブルに対するプライマリ インデックスのレコードのキーと同じです。 そのテーブルに対してプライマリ インデックスが定義されていない場合、データベース エンジンはレコードに対して独自のブックマークを作成します。

  • memcmp関数を使用してブックマークを互いに比較し、ソース レコードのテーブルに対するプライマリ インデックスの相対順序を確立できます。 そのテーブルに対してプライマリ インデックスが定義されていない場合は、そのテーブルからのブックマークの相対的な順序を使用する意味はありません。

  • 異なるテーブルのレコードのブックマークを互いに比較する意味はありません。

  • ブックマークは、Vista を使用する前に、JET_cbBookmarkMost (256) バイトの長さ以下Windowsです。

Windows Vista: Vista Windows以降のリリースでは、ブックマークは 256 バイトJET_cbBookmarkMost超える場合があります。 ブックマークの最大サイズは、 + 1 の現在JET_paramKeyMostと等しくなります。

要件

要件

Client

Vista Windows XP、Windows 2000 Windows が必要Professional。

サーバー

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

Header

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

Library

ESENT.lib を使用します。

DLL

必要ESENT.dll。

関連項目

JET_ERR
JET_SESID
JET_TABLEID
JetGoToBookmark
JetStopService
memcmp