JetGotoBookmark 関数
適用対象: Windows |Windows Server
JetGotoBookmark 関数
JetGotoBookmark 関数は、指定したブックマークに関連付けられているレコードのインデックス エントリにカーソルを置きます。 ブックマークは、テーブルに対して定義されている任意のインデックスで使用できます。 レコードのブックマークは、 JetGetBookmark を使用して取得できます。
JET_ERR JET_API JetGotoBookmark(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in void* pvBookmark,
__in unsigned long cbBookmark
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid
この呼び出しに使用するカーソル。
pvBookmark
カーソルの位置を指定するために使用するブックマークを含むバッファー。
cbBookmark
バッファー内のブックマークのサイズ。
戻り値
この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられているインスタンスのすべてのアクティビティが停止したため、操作を完了できません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したため、操作を完了できません。 Windows XP: この戻り値は、Windows XP で導入されました。 |
JET_errInvalidBookmark |
指定されたブックマークが無効です。 これは、ブックマークのサイズが 0 であるか、ブックマーク バッファー ポインターが NULL であるために発生した可能性があります。 |
JET_errNoCurrentRecord |
カーソルがセカンダリ インデックス上にあり、ブックマークに関連付けられているレコードのインデックス エントリが見つかりませんでした。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errRecordDeleted |
ブックマークに関連付けられているレコードが見つかりませんでした。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 Windows XP: この戻り値は、Windows XP で導入されました。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
この関数が成功すると、指定したブックマークに関連付けられているレコードのインデックス エントリにカーソルが配置されます。 レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルの検索キーが作成されている場合、その検索キーは削除されます。 データベースの状態に対する変更は行われません。
この関数が失敗した場合、カーソルの位置は変更されません。 レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルの検索キーが作成されている場合、その検索キーは削除されます。 データベースの状態に対する変更は行われません。
注釈
ブックマークを使用してインデックスにカーソルを置くには、2 つの方法があります。 1 つ目は、ブックマークを使用してレコードに直接配置することです。 これは、カーソルの現在のインデックスがプライマリ インデックスである場合に発生します。 この手法は、ESENT ブックマークが関連付けられているレコードの主キーと同じであるために機能します。
ブックマークを使用する 2 つ目の方法は、そのブックマークに関連付けられているレコードに対応するセカンダリ インデックス内のエントリにブックマークを配置することです。 このプロセス中、エンジンはプライマリ インデックスのブックマークを使用して実際のレコードを検索します。 次に、レコード データとセカンダリ インデックス定義を使用して、レコードを指すセカンダリ インデックスにキーを計算します。 次に、そのキーのインデックス エントリにカーソルを置きます。 カーソルが現在、1 つ以上の複数値キー列のセカンダリ インデックス上にある場合、カーソルは、これらの各キー列の最初の複数値に対応するインデックス エントリに配置されます。
要件
要件 | 値 |
---|---|
Client |
Windows Vista、Windows XP、または Windows 2000 Professional が必要です。 |
[サーバー] |
Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |