次の方法で共有


JetGetSystemParameter 関数

適用対象: Windows |Windows Server

JetGetSystemParameter 関数

JetGetSystemParameter 関数は、データベース エンジンの多数の構成設定を読み取ります。

    JET_ERR JET_API JetGetSystemParameter(
      __in          JET_INSTANCE instance,
      __in          JET_SESID sesid,
      __in          unsigned long paramid,
      __in_out_opt  JET_API_PTR* plParam,
      __out_opt     JET_PSTR szParam,
      __in          unsigned long cbMax
    );

パラメーター

instance

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

Windows 2000 の場合、このパラメーターは無視され、常に NULL である必要があります。

Windows XP 以降のリリースでは、このパラメーターは多少オーバーロードされます。 1 つのインスタンスのみがサポートされているレガシ モード (Windows 2000 互換モード) でエンジンが動作している場合、このパラメーターは NULL であるか、 JetInit によって返される実際のインスタンスを含む場合があります。 どちらの場合も、すべてのシステム パラメーター設定がその 1 つのインスタンスから読み取られます。 エンジンがマルチインスタンス モードで動作している場合、このパラメーターは NULL であるか、 JetInit またはJetCreateInstance を使用して作成されたインスタンスへのポインターである可能性があります。 このパラメーターが NULL の 場合、グローバル システム パラメーターの設定 (または既定) が読み取られます。 このパラメーターがインスタンスの場合、そのインスタンスのシステム パラメーター設定が読み取られます。

sesid

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

指定すると、指定されたインスタンスは無視され、セッションに関連付けられているインスタンスが使用されます。

paramid

読み取られるシステム パラメーターの ID。

システム パラメーターとそのプロパティの完全な一覧については、「システム パラメーター」を参照してください。

plParam

システム パラメーターが整数型の場合に、選択したシステム パラメーターの値を受け取る出力バッファー。

szParam

システム パラメーターが文字列型の場合に、選択したシステム パラメーターの値を受け取る出力バッファー。

cbMax

文字列出力バッファーの最大サイズ (バイト単位)。

戻り値

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

リターン コード

説明

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInitInProgress

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

JET_errInstanceUnavailable

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

JET_errInvalidParameter

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

これは、 JetGetSystemParameter で次の場合に発生する可能性があります。

  • 指定されたシステム パラメーター ID が無効であるか、サポートされていません。

  • 指定されたシステム パラメーターでは、整数出力バッファーを指定する必要があり、その出力バッファー ポインターは NULL でした。

  • 指定されたシステム パラメーターには、文字列出力バッファーを指定する必要があり、その出力バッファー ポインターは NULL でした。

    Windows Vista: これは、Windows Vista 以降のリリースでのみ発生します。

  • 指定されたシステム パラメーターでは、文字列出力バッファーを指定する必要があり、その出力バッファーのサイズが小さすぎて null で終わる文字列を受け入れられません。

    Windows Vista: これは、Windows Vista 以降のリリースでのみ発生します。

  • 指定されたシステム パラメーターは書き込み専用であるため、読み取ることができません。

  • 指定されたシステム パラメーターはグローバルのみであり、そのシステム パラメーターのインスタンス固有の値の読み取りが試行されました。 これは、Windows XP 以降のリリースでのみ発生します。

  • 指定されたシステム パラメーターはインスタンスごとのみで、そのシステム パラメーターのグローバル値の読み取りが試行されました。 これは、Windows XP 以降のリリースでのみ発生します。

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errTermInProgress

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

JET_errInvalidSesid

セッション ハンドルが無効であるか、閉じられたセッションを参照しています。 このエラーは、すべての状況で返されるわけではありません。 ハンドルはベスト エフォートベースでのみ検証されます。

JET_errInvalidInstance

インスタンス ハンドルが無効であるか、シャットダウンされているインスタンスを参照しています。 このエラーは、すべての状況で返されるわけではありません。 ハンドルはベスト エフォートベースでのみ検証されます。

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

JET_wrnBufferTruncated

操作は正常に完了しましたが、出力バッファーが小さすぎてシステム パラメーター設定全体を受信できませんでした。

出力バッファーには、収まるのと同じ量のシステム パラメーター設定が入力されています。 出力バッファーの長さが少なくとも 1 文字の場合、その出力バッファー内の文字列は null で終了します。

メモ このエラーは、すべてのリリースで返されるわけではありません。 詳細については、「解説」セクションを参照してください。

JET_errBufferTooSmall

出力バッファーが小さすぎてシステム パラメーター設定全体を受け取れなかったため、操作が失敗しました。

メモ このエラーは、アプリケーションの互換性を維持するために返されない場合があります。 詳細については、「解説」セクションを参照してください。

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

成功すると、要求されたシステム パラメーターに適した出力バッファーがそのシステム パラメーターの値に設定されます。

失敗した場合、出力バッファーの状態は未定義になります。

解説

この API には、すべてのリリースに存在する重要な問題があります。 文字列値を持つシステム パラメーターが要求され、出力バッファーが小さすぎてシステム パラメーター設定全体を受信できない場合、JET_wrnBufferTruncatedは返されません。 代わりに、JET_errSuccessが返されます。 返される文字列の長さが NULL ターミ ネータより小さい出力バッファーのサイズと等しい場合、呼び出し元は、JET_wrnBufferTruncatedが返されたかのように反応する必要があります。 0 サイズの文字列出力バッファーが指定されている場合、呼び出し元はJET_errInvalidParameterが返されたかのように応答する必要があります。

必要条件

要件

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

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

参照

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetInit
JetSetSystemParameter
JetStopService
システム パラメーター