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
システム パラメーター