JetGetRecordPosition 関数
適用対象: Windows |Windows Server
JetGetRecordPosition 関数
JetGetRecordPosition 関数は、現在のインデックス内の現在のレコードの小数位置を、JET_RECPOS構造体の形式で返します。 この構造体は、現在のレコードの前のインデックス エントリのおおよその数と、インデックス内のエントリのおおよその合計数の観点から小数部の位置を記述します。
JET_ERR JET_API JetGetRecordPosition(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_RECPOS* precpos,
__in unsigned long cbRecpos
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid
この呼び出しに使用するカーソル。
precpos
現在のインデックス内の現在のレコードの位置を取得するために使用する分数の説明。
cbRecpos
precpos で割り当てられたメモリのサイズ。
戻り値
この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられているインスタンス上のすべてのアクティビティが停止したため、操作を完了できません。 |
JET_errInstanceUnavailable |
セッションに関連付けられたインスタンスで致命的なエラーが発生したため、この操作を完了できません。 そのデータの整合性を保護するために、すべてのデータへのアクセスを取り消す必要があります。 Windows 2000: このエラーは、Windows 2000 オペレーティング システムからは返されません。 |
JET_errInvalidParameter |
事前に割り当てられたメモリのサイズが十分なサイズではありません。 |
JET_errNoCurrentRecord |
カーソルは現在レコード上になく、位置を返すことはできません。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 Windows 2000: このエラーは、Windows 2000 オペレーティング システムからは返されません。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
成功すると、インデックス内の現在のレコードの前にあるインデックス エントリのおおよその数が precpos-centriesLT> で返されます。 1 は precpos-centriesInRange> で返されます。 インデックス内のエントリのおおよその数は precpos-centriesTotal> で返されます。
障害が発生した場合、 事前に割り当てられたメモリに対する変更は行われません。
解説
この操作では、テーブルで更新が継続的に行われると、さまざまなデータが返されます。 値の変更は、インデックスの物理プロパティに基づく近似値であるため、更新に関する知識に基づく期待値と常に一致するとは限りません。 トランザクション分離は JetGetRecordPosition からの位置には適用されません。値は、トランザクション分離されていないインデックスの物理プロパティに依存するためです。
JET_RECPOS は、テーブル内のレコードを記述したり、既存のレコードに近いレコードの位置を変更したりするために使用しないでください。 代わりに、既存のレコードのブックマークを取得してから、同じレコードの位置を変更するために使用する必要があります。
要件
要件 | 値 |
---|---|
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_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RECPOS
JET_SETINFO
JetGotoPosition
JetStopService