次の方法で共有


JetBeginSession 関数

適用対象: Windows |Windows Server

JetBeginSession 関数

JetBeginSession 関数はセッションを開始し、ESE セッション ハンドル (JET_SESID) を初期化して返します。 セッションはデータベースへのすべてのアクセスを制御し、トランザクションのスコープを制御するために使用されます。 セッションを使用して、トランザクションの開始、コミット、または中止を行うことができます。 セッションは、データベースのアタッチ、作成、または開きにも使用されます。 セッションは、すべての DDL および DML 操作のコンテキストとして使用されます。 データベースへのコンカレンシーと並列アクセスを増やすには、複数のセッションを開始できます。

    JET_ERR JET_API JetBeginSession(
      __in          JET_INSTANCE instance,
      __out         JET_SESID* psesid,
      __in_opt      JET_PCSTR szUserName,
      __in_opt      JET_PCSTR szPassword
    );

パラメーター

instance

この呼び出しに使用するデータベース インスタンス。

psesid

正常に戻った場合にセッション ハンドルが初期化する変数へのポインター。

szUserName

このパラメーターは予約されています。

szPassword

このパラメーターは予約されています。

戻り値

この関数を使用すると、この API で定義されているすべての JET_ERRを返すことができます。 Jet エラーの詳細については、「 記憶域エンジンの拡張可能 エラー」および「 エラー処理パラメーター」を参照してください。

リターン コード

説明

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

このエラーは、Windows XP 以降のリリースでのみ返されます。

JET_errInvalidParameter

指定されたパラメーターの 1 つに、予期しない値が含まれていたか、別のパラメーターの値と組み合わせると意味のない値が含まれていました。

JET_errNotInitialized

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

JET_errOutOfMemory

メモリを割り当てられなかったため、操作が失敗しました。

JET_errOutOfSessions

エンジンがクライアントの起動を許可するセッションの数は限られています。 この値は、JET_paramMaxSessions定数を指定して JetSetSystemParameter を 使用して変更できます。 セッションの既定の数は 16 です。 JET_paramMaxSessionsの詳細については、「 システム パラメーター」を 参照してください。

JET_errRestoreInProgress

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

JET_errTermInProgress

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

成功すると、セッション ハンドルが初期化され、データベース操作に使用できます。

失敗した場合、使用可能なセッションがないか、新しいセッションを初期化できませんでした。

注釈

異なるスレッド間でセッションを使用する場合は、注意が必要です。 セッションは、 JetBeginTransactionJetCommitTransaction、または JetRollback 中に使用されたスレッドを追跡し、開いているトランザクションで複数のスレッドで使用するとエラーをスローします。 JetResetSessionContextJetSetSessionContext は、この動作を変更できます。 セッションは依然としてシリアル化されたコンテキストであり、複数のデータベース操作を 1 つのセッションで同時に実行することはできず、シリアル化のみであるためです。 ただし、複数のセッションを使用して、同時データベース アクセスを実現できます。 セッション コンテキストを設定およびリセットすることで、スレッド間のトランザクション内でセッションを使用できます。

セッション ハンドルは JetEndSession で閉じる必要があります。

要件

要件

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が必要です。

Unicode

JetBeginSessionW (Unicode) および JetBeginSessionA (ANSI) として実装されます。

参照

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
システム パラメーター