次の方法で共有


JetSetLS 関数

適用対象: Windows |Windows Server

JetSetLS 関数

JetSetLS 関数を使用すると、アプリケーションはローカル ストレージと呼ばれるコンテキスト ハンドルをカーソルまたはそのカーソルに関連付けられたテーブルに関連付けることができます。 このコンテキスト ハンドルは、カーソルまたはテーブルに関連付けられている補助データを格納するためにアプリケーションで使用できます。 コンテキスト ハンドルを解放する必要がある場合、アプリケーションは後でランタイム コールバックを使用して通知されます。 これにより、動的に割り当てられた状態をカーソルまたはテーブルに関連付けることができます。

Windows XP:JetSetLS は Windows XP で導入されています。

    JET_ERR JET_API JetSetLS(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_LS ls,
      __in          JET_GRBIT grbit
    );

パラメーター

sesid

この呼び出しに使用するセッション。

tableid

この呼び出しに使用するカーソル。

ls

カーソルまたはテーブルに関連付けるコンテキスト ハンドル。

JET_bitLSResetを指定すると、このパラメーターの実際の値は無視され、JET_LSNilが使用されます。

grbit

この呼び出しに使用するオプションを含むビットのグループ。これには、次の 0 個以上が含まれます。

説明

JET_bitLSCursor

このオプションは、コンテキスト ハンドルを指定されたカーソルに関連付ける必要があることを示します。

JET_bitLSCursorもJET_bitLSTableも指定されていない場合は、JET_bitLSCursorが推定されます。

JET_bitLSTableでこのオプションを使用することは違法です。 この操作が試行されると、JET_errInvalidgrbitで操作が失敗します。

JET_bitLSReset

このオプションは、指定したコンテキスト ハンドルを無視し、選択したオブジェクトのコンテキスト ハンドルをJET_LSNilにリセットする必要があることを示します。

このアクションでは、選択したオブジェクトのコンテキスト ハンドルの以前の値をクリーンアップするためのコールバックは発生しないことに注意してください。 前のコンテキスト ハンドルの適切なクリーンアップは、 JET_bitLSResetで JetGetLS を 使用して実現できます。 詳細については、「 JetGetLS 」を参照してください。

JET_bitLSTable

このオプションは、指定されたカーソルに関連付けられたテーブルにコンテキスト ハンドルを関連付ける必要があることを示します。

このオプションをJET_bitLSCursorで使用することは違法です。 この操作が試行されると、JET_errInvalidgrbitで操作が失敗します。

戻り値

この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。

リターン コード

説明

JET_errSuccess

操作は正常に完了しました。

JET_errClientRequestToStopJetService

JetStopService の呼び出しの結果、セッションに関連付けられたインスタンス上のすべてのアクティビティが停止したため、操作を完了することはできません。

JET_errInvalidgrbit

要求されたオプションの 1 つが無効であるか、正しく使用されていないか、実装されていませんでした。 これは、JET_bitLSCursorとJET_bitLSTableの両方が指定されている場合に 、JetSetLS で 発生する可能性があります。

JET_errInstanceUnavailable

セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。このエラーでは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要があります。 このエラーは、Windows XP 以降のリリースでのみ返されます。

JET_errLSAlreadySet

指定されたコンテキスト ハンドルは、既にコンテキスト ハンドルが関連付けられているため、要求されたオブジェクトに関連付けられません。

JET_errLSCallbackNotSpecified

セッションに関連付けられているインスタンスに対してランタイム コールバックが構成されていないため、指定されたコンテキスト ハンドルを要求されたオブジェクトに関連付けませんでした。

JET_errNotInitialized

セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。

JET_errRestoreInProgress

セッションに関連付けられているインスタンスで復元操作が進行中であるため、操作を完了できません。

JET_errTermInProgress

セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。

成功すると、指定されたコンテキスト ハンドルが要求されたオブジェクトに正常に関連付けられました。 データベースの状態は変更されません。

失敗した場合、要求されたオブジェクトの状態に対する変更は行われません。 データベースの状態は変更されません。

解説

カーソルまたはテーブルのローカル ストレージは、揮発性キャッシュとして表示する必要があります。 アプリケーションでは、最初に JetGetLS を使用してコンテキスト ハンドルを取得する必要があります。 値が設定されていない (つまりJET_LSNil) 場合、アプリケーションは新しいコンテキストを作成し、 JetSetLS を使用してキャッシュに読み込む必要があります。 アプリケーションは、JET_bitLSResetを使用して JetGetLS の呼び出しを使用してキャッシュを消去できます。 データベース エンジンがキャッシュを消去すると、ランタイム コールバックが生成され、アプリケーションでそのコンテキストをクリーンアップできるようになります。 コールバック型は、カーソルに関連付けられたコンテキスト ハンドルに対してJET_cbtypFreeCursorLSされ、テーブルに関連付けられたコンテキスト ハンドルのJET_cbtypFreeTableLSされます。 どちらの場合も、コンテキスト ハンドルは pvArg1 として渡されます。 詳細については、「 JET_CALLBACK 」を参照してください。

ローカル ストレージを使用する前に、指定されたセッションに関連付けられているインスタンスに対してランタイム コールバックを適切に構成する必要があります。 このコールバックは、 JetSetSystemParameterJET_paramRuntimeCallbackを使用して設定できます。 詳細については、「システム パラメーター」の JetSetSystemParameterJET_paramRuntimeCallback に関するページを参照してください。

要件

要件

Client

Windows Vista または Windows XP が必要です。

[サーバー]

Windows Server 2008 または Windows Server 2003 が必要です。

Header

Esent.h で宣言されています。

Library

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。

参照

JET_CALLBACK
JET_ERR
JET_GRBIT
JET_LS
JET_SESID
JET_TABLEID
JetGetLS
JetSetSystemParameter
システム パラメーター