JetGetDatabaseInfo 関数
適用対象: Windows |Windows Server
JetGetDatabaseInfo 関数
JetGetDatabaseInfo 関数は、データベースに関するさまざまな種類の情報を取得します。 この API は、データベースが接続されている間、またはオンライン ( JetGetDatabaseInfo を使用) 中、またはデータベースエンジンまたはデータベース エンジンがオフラインの間 ( JetGetDatabaseFileInfo を使用) に呼び出すことができます。
JET_ERR JET_API JetGetDatabaseInfo(
__in JET_SESID sesid,
__in JET_DBID dbid,
__out void* pvResult,
__in unsigned long cbMax,
__in unsigned long InfoLevel
);
パラメーター
sesid
この呼び出しに使用するセッション。
dbid
情報を取得するデータベースの JET_DBID 。
pvResult
指定した情報を受け取るバッファーへのポインター。 バッファーのサイズ (バイト単位) は cbMax で渡されます。
失敗した場合、 pvResult の内容は未定義です。
pvResult に格納される情報は InfoLevel によって異なります。
cbMax
pvResult で渡されたバッファーのサイズ (バイト単位)。
InfoLevel
InfoLevel は、指定されたデータベースに関して取得する必要がある情報の種類を指定します。 pvResult の解釈方法に影響します。 一部の InfoLevel は、API のオフライン (JetGetDatabaseFileInfo) またはオンライン (JetGetDatabaseInfo) バージョンでのみ使用できます。
指定された pvResult バッファーが小さすぎる場合は、 InfoLevel に応じて、JET_errInvalidBufferSizeまたはJET_errBufferTooSmallが返されます。
値 |
説明 |
---|---|
JET_DbInfoCollate |
まだサポートされておらず、既定値を返します。 使用しないでください。 |
JET_DbInfoConnect |
これらの InfoLevel は 非推奨であり、現在サポートされていません。 使用しないでください。 |
JET_DbInfoCountry |
まだサポートされておらず、既定値を返します。 使用しないでください。 |
JET_DbInfoCp |
まだサポートされておらず、既定値を返します。 使用しないでください。 |
JET_DbInfoFilename |
pvResult は文字列バッファー (char *) として解釈されます。 MAX_PATH バッファーは推奨されますが、必須ではありません。 バッファーの長さが十分でない場合は、JET_errBufferTooSmallが返されます。 文字列には、この DBID のデータベースのパスが設定されます。 |
JET_DbInfoFilesize |
pvResult は DWORD (4 バイト) として解釈されます。 データベースのサイズをページ単位で返します。 |
JET_DbInfoIsam |
これらの InfoLevel は 非推奨であり、現在サポートされていません。 使用しないでください。 |
JET_DbInfoLCID |
(Windows XP 以降)この InfoLevel は、最初は JET_DbInfoLangid (Windows 2000) として指定されていました。 pvResult は long として解釈されます。 これにより、このデータベースに関連付けるロケール識別子 (LCID) が返されます。 |
JET_DbInfoMisc |
pvResult は 、JET_DBINFOMISCとして解釈されます。 JET_DBINFOMISC構造体には、指定されたデータベースに関連する情報が設定されます。 |
JET_DbInfoOptions |
pvResult は 、JET_GRBIT (DWORD) として解釈されます。 これにより、データベースが排他モードで開かれているかどうかを返します。 データベースが排他モードの場合JET_bitDbExclusive指定された JET_GRBIT に設定されます。それ以外の場合は 0 が設定されます。 JetAttachDatabase と JetOpenDatabase の他のデータベース grbit オプションは返されないことに注意してください。 |
JET_DbInfoPageSize |
Windows XP 以降でのみ使用できます。 pvResult は、符号なし long として解釈されます。 これにより、データベースのページ サイズがバイト単位で返されます。 |
JET_DbInfoSpaceAvailable |
pvResult は DWORD として解釈されます。 これにより、データベースの使用可能な領域がページ単位で返されます。 |
JET_DbInfoSpaceOwned |
pvResult は DWORD として解釈されます。 これにより、データベースの所有領域がページ単位で返されます。 |
JET_DbInfoTransactions |
pvResult は long として解釈されます。 これにより、トランザクションを入れ子にできる最大レベルを超える 1 つが返されます。 JetBeginTransaction が呼び出された場合 (つまり、コミットまたはロールバックを行わずに同じセッションで)、最後の呼び出しJET_errTransTooDeepで JetBeginTransaction から返されます。 Windows 2000、Windows XP、Windows Server 2003 の値は 7 であることに注意してください。 |
JET_DbInfoVersion |
pvResult は long として解釈されます。 これにより、データベース エンジンのネイティブ メジャー バージョンが返されます。 この値は、Windows 2000、Windows XP、および Windows Server 2003 で0x620されます。 |
戻り値
この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errBufferTooSmall |
cbMax で指定されたバッファーのサイズが小さすぎる (または正しくない) ため、目的の情報が保持されませんでした。 |
JET_errFeatureNotAvailable |
要求された InfoLevel がJET_DbInfoIsamされました。 これはサポートされていません。 |
JET_errInvalidBufferSize |
cbMax で指定されたバッファーのサイズが小さすぎる (または正しくない) ため、目的の情報が保持されませんでした。 |
JET_errInvalidParameter |
指定されたパラメーターの 1 つに、予期しない値が含まれていたか、別のパラメーターの値と組み合わせると意味のない値が含まれていました。 このエラーは、指定されたJET_DBIDが有効な (アタッチされている) データベースでない場合に、JetGetDatabaseInfo によって返されます。 このエラーは、要求された InfoLevel がそのバージョンの関数でサポートされていない場合、JetGetDatabaseFileInfo と JetGetDatabaseInfo によって返されます。 |
成功すると、要求されたデータが出力バッファーに返されます。
失敗した場合、出力バッファーは未定義の状態になります。
必要条件
要件 | 値 |
---|---|
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 |
JetGetDatabaseInfoW (Unicode) および JetGetDatabaseInfoA (ANSI) として実装されます。 |
参照
JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo