JetCreateDatabase2 関数

適用対象: Windows |Windows Server

JetCreateDatabase2 関数

JetCreateDatabase2 関数は、ESE データベース エンジンで使用するデータベース ファイルを作成し、最大データベース サイズを指定してアタッチします。 cpgDatabaseSizeMax を 0 に設定して JetCreateDatabase2 を呼び出すことは、szConnect が NULL に設定された JetCreateDatabase を呼び出すのと同じです。 現在、インスタンスごとに最大 7 つのデータベースを作成できます。

    JET_ERR JET_API JetCreateDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

パラメーター

sesid

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

szFilename

作成するデータベースの名前です。

cpgDatabaseSizeMax

データベース の最大サイズ (データベース ページ)。 既定のデータベース ページ サイズは 4 キロバイトであり、データベースを作成する前に JetSetSystemParameter で変更できます。

0 を渡すと、データベース エンジンによって適用される最大値がないことを意味します。

pdbid

正常な呼び出し時にデータベースの識別子を含むバッファーへのポインター。 失敗した場合、値は未定義です。

grbit

次のオプションの 0 個以上を指定するビットのグループ。

説明

JET_bitDbOverwriteExisting

既定では、 JetCreateDatabase または JetCreateDatabase2 が呼び出され、データベースが既に存在する場合、API 呼び出しは失敗し、元のデータベースは上書きされません。 JET_bitDbOverwriteExistingこの動作が変更され、古いデータベースは新しいデータベースで上書きされます。 Windows XP 以降。

JET_bitDbRecoveryOff

JET_bitDbRecoveryOffはログ記録をオフにします。 このビットを設定すると、致命的なイベントの後にログ ファイルを再生し、データベースを一貫した使用可能な状態に回復する機能が失われます。

JET_bitDbShadowingOff

JET_bitDbShadowingOff設定すると、一部の内部データベース構造 (シャドウ) の重複が無効になります。 これらの構造体の重複は回復性のために行われるので、JET_bitDbShadowingOff設定すると、その回復性が削除されます。

戻り値

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

リターン コード

説明

JET_errSuccess

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

JET_errDatabaseDuplicate

szFilename にという名前のデータベースが既に存在します。 このエラーが返されると、データベースはアタッチされません。

JET_errDatabaseInUse

排他アクセスが要求されたが、許可できなかった場合、または別のセッションが既にデータベースを排他的に開いている場合は、 を返すことができます。

JET_errDatabaseInvalidPages

cpgDatabaseSizeMax がデータベースで許可されているページの最大数より大きい場合に返されます。 現在の最大値は 2147483646 (0x7ffffffe) です。

JET_errDatabaseInvalidPath

szFilename に無効なパスが指定されました。 szFilename は NULL 以外である必要があります。 既定では、 szFilename は存在するディレクトリを指す必要があります。 JET_paramCreatePathIfNotExistが設定されている場合は、パスが作成されます (JetSetSystemParameter を参照)。

JET_errDatabaseLocked

別のセッションが既に (JET_bitDbExclusive を使用して) データベースを排他的に開いていることを示します。

JET_errDatabaseNotFound

データベースが以前にアタッチされていません ( 「JetAttachDatabase」を参照)。

JET_errDatabaseSharingViolation

データベース ファイルは既に別のセッションによってアタッチされています。

JET_errInTransaction

トランザクション中にデータベースを作成しようとしました。

JET_errInvalidDatabase

有効なデータベース ファイルではないファイルを開こうとしました。

JET_errOneDatabasePerSession

複数のデータベースを開こうとし、JET_paramOneDatabasePerSessionが設定されました。 「システム パラメーター」を参照してください

JET_errOutOfMemory

リソースが不足していた。

JET_errTooManyAttachedDatabases

インスタンスごとにアタッチできるデータベースの数は限られています。 制限は現在、インスタンスあたり 7 つのデータベースです。

JET_wrnDatabaseAttached

データベース ファイルがこのセッションによって既にアタッチされていることを示す致命的でない警告。

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnlyは、ファイルが読み取り専用でアタッチされたが、 JetCreateDatabase がJET_bitDbReadOnlyを渡さなかったことを示します。 データベースは引き続き読み取り専用で開かれます。

注釈

szFilename で指定されたデータベースが存在し、JET_bitDbOverwriteExistingが渡されなかった場合、API 呼び出しは失敗します。 JET_bitDbOverwriteExistingが渡された場合、最初に古いデータベース ファイルが削除されます。

API によってデータベース ファイルが作成され、別のエラーが発生した場合は、クリーンされ、ファイルが削除されます。

JetCreateDatabase2 は、データベースを暗黙的に開きます。 後で JetOpenDatabase を呼び出す必要はありません。

要件

要件

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

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

参照

拡張可能なストレージ エンジン ファイル
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
システム パラメーター