次の方法で共有


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