JetDupCursor 関数
適用対象: Windows |Windows Server
JetDupCursor 関数
JetDupCursor 関数は、開いているカーソルを複製し、重複したカーソルへのハンドルを返します。 複製されたカーソルが読み取り専用カーソルである場合、複製されたカーソルも読み取り専用カーソルになります。 検索キーの作成またはレコードの更新に関連する状態は、複製されたカーソルにコピーされません。 また、元のカーソルの位置は、複製されたカーソルに複製されません。 重複したカーソルは常にクラスター化インデックスで開き、その場所は常にテーブルの最初の行にあります。
JET_ERR JET_API JetDupCursor(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_TABLEID* ptableid,
__in JET_GRBIT grbit
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid
この呼び出しに使用するカーソル。
ptableid
tableid へのポインター。
grbit
将来利用するために予約されています。
戻り値
この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられたインスタンスのすべてのアクティビティが停止したため、操作を完了できません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したため、操作を完了できません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errOutOfCursors |
使用可能なカーソル リソースが存在しません。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
成功すると、 ptableid は重複したカーソルに設定されます。
失敗した場合、変更は行われません。 tableid の状態は変更されません。
解説
複製されたカーソルには、カーソルの状態全体がコピーされていません。 現在のインデックスを含む重複したカーソルの位置は、通常、指定されたカーソルとは異なります。 重複したカーソルは、クラスター化インデックスとテーブルの最初の行で常に返されます。 テーブルが空の場合、重複したカーソルはどの行にも表示されません。
JetDupCursor で開かれたテーブルは、通常、JetCloseTable で閉じる必要があります。 このルールの例外は、 トランザクションで JetDupCursor が呼び出され、トランザクションがロールバックされた場合に発生します ( JetRollback を使用)。 トランザクションをロールバックすると、カーソルは自動的に閉じられます。 この場合、 JetCloseTable を使用してテーブルを閉じるとエラーになります。
同時に開くことができるテーブルの数は、 JET_paramMaxOpenTablesによって直接影響を受けます。 詳細については、「 システム パラメーター」を 参照してください。
必要条件
要件 | 値 |
---|---|
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_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
システム パラメーター