JetSetDatabaseSize 関数

適用対象: Windows |Windows Server

JetSetDatabaseSize 関数

JetSetDatabaseSize 関数は、開いていないデータベース ファイルのサイズを設定します。

    JET_ERR JET_API JetSetDatabaseSize(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szDatabaseName,
      __in          unsigned long cpg,
      __out         unsigned long* pcpgReal
    );

パラメーター

sesid

API 呼び出しに使用するデータベース セッション コンテキストを識別します。

szDatabaseName

サイズを変更するデータベース ファイルの名前を識別します。

Cpg

データベースの目的のサイズをページ単位で指定します。

pcpgReal

API 呼び出し後にデータベースのサイズを受け取る数値へのポインター (ページ単位)。 API 呼び出しが失敗した場合、 pcpgReal の内容は未定義です。

戻り値

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

リターン コード

説明

JET_errSuccess

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

JET_errDatabaseInconsistent
JET_errDatabaseDirtyShutdown

JET_errDatabaseInconsistentとJET_errDatabaseDirtyShutdownは同じ数値です。 サイズを調整するデータベースは、一貫性のある状態と呼ばれるクリーンシャットダウンされている必要があります。 一貫性のないデータベースは破損していませんが、ログ ファイルを再生する必要があります。

JET_errDatabaseInvalidPath

szDatabaseName は、空の NULL 以外の文字列にすることはできません。

JET_errDiskFull

ボリュームに、拡張操作を実行するための空き領域が不足しています。 JetSetDatabaseSize では、次のような多くのファイル関連エラーが返されることがありますが、これらに限定されません。

  • JET_errDiskIO

  • JET_errFileNotFound

  • JET_errInvalidPath

  • JET_errFileAccessDenied

  • JET_errOutOfFileHandles

JET_errInvalidParameter

このエラーが返される理由の 1 つは、 cpg が最小データベース サイズを満たしている場合です。 現在の最小データベース サイズは 256 ページです。

JET_errOutOfMemory

システムのメモリ リソースが不足しています。

解説

大量のデータを挿入する前に JetSetDatabaseSize が呼び出された場合、データベース ファイルは 1 回の操作で拡大されます。 これにより、データベース ファイルがファイル システム レベルで断片化される可能性が減り、データベース ファイルを拡大する必要がある回数も減ります。 データベース ファイルを 1 回増やした方が、複数回増やすよりも高速になる場合があります。

現在、ファイルの拡大のみがサポートされています。 ファイルを圧縮するには、esentutl.exe ユーティリティ プログラムのデフラグ機能を使用します。

cpg がデータベースの現在のサイズより小さい場合、操作は無視されます。 cpg が最小データベース サイズ (現在は 256 ページ) より小さい場合、JET_errInvalidParameterが返されます。

開くデータベースのサイズを設定するには、「 JetGrowDatabase」を参照してください。

ファイル サイズが 、pcpgReal で返されるページ数と一致しない場合があります。 pcpgReal ではカウントされない可能性がある追加の予約ページが 2 つあります。

要件

要件

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

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

参照

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JET_OBJECTLIST
JetGrowDatabase