JetSeek 関数
適用対象: Windows |Windows Server
JetSeek 関数
JetSeek 関数は、カーソル内の検索キーで指定された検索条件と指定された不等値に一致するインデックス エントリにカーソルを効率的に配置します。 検索キーは、 JetMakeKey を使用して以前に構築されている必要があります。
JET_ERR JET_API JetSeek(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_GRBIT grbit
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid
この呼び出しに使用するカーソル。
grbit
この呼び出しに使用するオプションを含むビットのグループ。 Grbit は 0 以外である必要があり、次の表に示す 1 つ以上の値を含める必要があります。
値 |
説明 |
---|---|
JET_bitCheckUniqueness |
検索キーと一致するインデックス エントリが 1 つだけあると安く判断できる場合は、特別なエラー コード (JET_wrnUniqueKey) が返されます。 JET_bitSeekEQも指定しない限り、このオプションは無視されます。 このオプションは、Windows Server 2003 以降のリリースでのみ使用できます。 |
JET_bitSeekEQ |
カーソルは、検索キーと完全に一致するインデックスの先頭に最も近いインデックス エントリに配置されます。 インデックスの先頭は、そのインデックス内の最初のレコードに移動するときに検出されるインデックス エントリです。 インデックスの先頭はインデックスのロー エンドと同じではなく、インデックス内のキー列の並べ替え順序に応じて変更される可能性があります。 ワイルドカード オプションを使用して JetMakeKey を使用して構築された検索キーでこのオプションを使用することは意味がありません。 |
JET_bitSeekGE |
カーソルは、検索条件と完全に一致するインデックス エントリ以上のインデックスの先頭に最も近いインデックス エントリに配置されます。 インデックスの先頭は、そのインデックス内の最初のレコードに移動するときに検出されるインデックス エントリです。 インデックスの先頭はインデックスのロー エンドと同じではなく、インデックス内のキー列の並べ替え順序に応じて変更される可能性があります。 インデックスの末尾に最も近いインデックス エントリを検索するためのワイルドカード オプションを使用して JetMakeKey を使用して構築された検索キーでこのオプションを使用することは意味がありません。 |
JET_bitSeekGT |
カーソルは、検索条件と完全に一致するインデックス エントリより大きいインデックスの先頭に最も近いインデックス エントリに配置されます。 インデックスの先頭は、そのインデックス内の最初のレコードに移動するときに検出されるインデックス エントリです。 インデックスの先頭はインデックスのロー エンドと同じではなく、インデックス内のキー列の並べ替え順序に応じて変更される可能性があります。 インデックスの先頭に最も近いインデックス エントリを検索するためのワイルドカード オプションを使用して JetMakeKey を使用して構築された検索キーでこのオプションを使用することは意味がありません。 |
JET_bitSeekLE |
カーソルは、検索条件と完全に一致するインデックス エントリ以下のインデックスの末尾に最も近いインデックス エントリに配置されます。 インデックスの末尾は、そのインデックス内の最後のレコードに移動するときに検出されるインデックス エントリです。 インデックスの末尾は、インデックスの上端と同じではなく、インデックス内のキー列の並べ替え順序に応じて変更される可能性があります。 インデックスの先頭に最も近いインデックス エントリを検索するためのワイルドカード オプションを使用して JetMakeKey を使用して構築された検索キーでこのオプションを使用することは意味がありません。 |
JET_bitSeekLT |
カーソルは、検索条件と完全に一致するインデックス エントリより小さいインデックスの末尾に最も近いインデックス エントリに配置されます。 インデックスの末尾は、そのインデックス内の最後のレコードに移動するときに検出されるインデックス エントリです。 インデックスの末尾は、インデックスの上端と同じではなく、インデックス内のキー列の並べ替え順序に応じて変更される可能性があります。 インデックスの末尾に最も近いインデックス エントリを検索するためのワイルドカード オプションを使用して JetMakeKey を使用して構築された検索キーでこのオプションを使用することは意味がありません。 |
JET_bitSetIndexRange |
インデックス範囲は、検索キーと完全に一致するすべてのキーに対して自動的に設定されます。 結果のインデックス範囲は、JET_bitRangeInclusiveオプションとJET_bitRangeUpperLimitオプションを使用した JetSetIndexRange の呼び出しによって作成されたものと同じです。 詳細については 、「JetSetIndexRange 」を参照してください。 これは、同じ検索条件に一致するすべてのインデックス エントリを検出するための便利な方法です。 JET_bitSeekEQも指定しない限り、このオプションは無視されます。 |
戻り値
この関数を使用すると、この API で定義されているすべての JET_ERRs を返すことができます。 Jet エラーの詳細については、「 記憶域エンジンの拡張可能 エラー」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 JetSeek の場合、検索条件と完全に一致するインデックス エントリが見つかったことを意味します。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられたインスタンス上のすべてのアクティビティが停止したため、操作を完了することはできません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。このエラーでは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要があります。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errKeyNotMade |
カーソルの現在の検索キーはありません。 JetSeek では、インデックス エントリの検索に使用される検索条件にカーソルに有効な検索キーが使用されるため、カーソルに有効な検索キーが必要です。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errRecordNotFound |
検索条件に一致するインデックス エントリが見つかりませんでした。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中であるため、操作を完了できません。 |
JET_wrnSeekNotEqual |
検索条件に一致するインデックス エントリが見つかりました。 ただし、そのインデックス エントリは完全に一致していません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
JET_wrnUniqueKey |
検索条件と完全に一致する 1 つのインデックス エントリが見つかりました。 このエラーは、JET_bitSeekCheckUniquenessが指定されていて、一致するインデックス エントリが検索条件と完全に一致する唯一のインデックス エントリであると判断した場合にのみ返されます。 このエラーは、Windows Server 2003 以降のリリースでのみ返されます。 |
成功すると、カーソルは検索条件に一致するインデックス エントリに配置されます。 レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルの検索キーが作成されている場合、その検索キーは削除されます。 データベースの状態は変更されません。 複数のインデックス エントリの値が同じ場合、インデックスの先頭に最も近いエントリが常に選択されます。
失敗した場合、JET_errRecordNotFoundが返されない限り、カーソルの位置は変更されません。 その場合、カーソルは、そのカーソル内の検索キーで指定された検索条件に一致するインデックス エントリと指定された不等値の位置に置かれます。 カーソルは、その位置を基準にして移動できますが、有効なインデックス エントリ上にありません。 レコードが更新用に準備されている場合、その更新は取り消されます。 インデックス範囲が有効な場合、そのインデックス範囲は取り消されます。 カーソルの検索キーが作成されている場合、その検索キーは削除されます。 データベースの状態は変更されません。
必要条件
要件 | 値 |
---|---|
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が必要です。 |
参照
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService