JetRegisterCallback 関数
適用対象: Windows |Windows Server
JetRegisterCallback 関数
JetRegisterCallback 関数を使用すると、アプリケーションは、特定のイベントの通知をアプリケーションに発行するようにデータベース エンジンを構成できます。 これらの通知は特定のテーブルに関連付けられます。有効なのは、そのテーブルを含むインスタンスが JetTerm を使用してシャットダウンされるまでのみです。
Windows XP: JetRegisterCallback は Windows XP で導入されました。
JET_ERR JET_API JetRegisterCallback(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_CBTYP cbtyp,
__in JET_CALLBACK pCallback,
__in void* pvContext,
__out JET_HANDLE* phCallbackId
);
パラメーター
sesid
この呼び出しに使用するセッション。
tableid
この呼び出しに使用するカーソル。
cbtyp
アプリケーションが通知を受信するコールバックの理由で構成されるビット マスク。
このビット マスクを作成するには、 JET_CBTYP 列挙体から有効なコールバック理由を単純にまたはまとめて作成します。
pCallback
アプリケーションのコールバック関数への関数ポインター。
pvContext
アプリケーションのコールバック関数に渡されるコンテキスト ポインターを指定します。
phCallbackId
JetUnregisterCallback を使用して、指定されたコールバック関数の登録を取り消すために後で使用できるハンドルを返します。
戻り値
この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられたインスタンス上のすべてのアクティビティが停止したため、操作を完了することはできません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。このエラーでは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要があります。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errInvalidParameter |
指定されたパラメーターの 1 つに、予期しない値が含まれていたか、別のパラメーターの値と組み合わせると意味のない値が含まれていました。 このエラーは、次の場合に JetRegisterCallback によって返されます。
|
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中であるため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
成功すると、指定されたコールバックが、指定されたカーソルに関連付けられているテーブルに指定されたコールバックの理由で登録されます。 データベースの状態は変更されません。
失敗した場合、コールバックは登録されません。 データベースの状態は変更されません。
解説
このメソッドは、アプリケーションが揮発性コールバックをデータベース内のテーブルに関連付ける手段を提供します。 アプリケーションが永続化されたコールバックをデータベース内のテーブルに関連付ける場合は、JetCreateTableColumnIndex を使用してコールバックをJET_TABLECREATEに渡す必要があります。
必要条件
要件 | 値 |
---|---|
Client |
Windows Vista または Windows XP が必要です。 |
[サーバー] |
Windows Server 2008 または Windows Server 2003 が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |
参照
JET_CALLBACK
JET_CBTYP
JET_ERR
JET_HANDLE
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetTerm
JetUnregisterCallback