JetAttachDatabase2 関数
適用対象: Windows |Windows Server
JetAttachDatabase2 関数
JetAttachDatabase2 関数は、データベース インスタンスで使用するデータベース ファイルをアタッチし、そのデータベースの最大サイズを指定します。 データベースを使用するには、その後 JetOpenDatabase でデータベースを開く必要があります。
JET_ERR JET_API JetAttachDatabase2(
__in JET_SESID sesid,
__in const tchar* szFilename,
__in const unsigned long cpgDatabaseSizeMax,
__in JET_GRBIT grbit
);
パラメーター
sesid
API 呼び出しに使用されるデータベース セッション コンテキスト。
szFilename
アタッチするデータベースの名前。
cpgDatabaseSizeMax
データベース の最大サイズ (データベース ページ)。 既定のデータベース ページ サイズは 4 KB です。これは、データベースを作成する前に JetSetSystemParameter 関数を使用して変更できます。
0 を渡すと、データベース エンジンによって適用される最大値がないことを意味します。
grbit
この呼び出しに使用するオプションを含むビットのグループ。これには、次の 0 個以上が含まれます。
値 |
説明 |
---|---|
JET_bitDbDeleteCorruptIndexes |
JET_paramEnableIndexCheckingが設定されている場合、Unicode データに対するすべてのインデックスが削除されます。 詳細については、「解説」を参照してください。 |
JET_bitDbDeleteUnicodeIndexes |
Unicode データに対するすべてのインデックスは、 JET_paramEnableIndexCheckingの設定に関係なく削除されます。 詳細については、「解説」を参照してください。 |
JET_bitDbReadOnly |
データベースの変更を防止します。 |
JET_bitDbUpgrade |
将来利用するために予約されています。 |
戻り値
関数は、 JET_ERR エラー コードのいずれかを返します。 最も一般的に返されるのは次のとおりです。 (この API のエラーの完全な一覧については、「 Extensible Storage Engine Error Codes」を参照してください)。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errBackupInProgress |
バックアップ中にデータベースをアタッチすることはできません。 |
JET_errDatabaseFileReadOnly |
szFilename で指定されたデータベース ファイルは書き込み可能である必要があります。 Read-Only属性を設定しないでください。また、実行中のプロセスには、ファイルに書き込むのに十分な権限が必要です。 |
JET_errDatabaseInUse |
データベース ファイルは、別のプロセスによって既に開かれています。 |
JET_errDatabaseInvalidPath |
szFilename に無効なパスが指定されました。 szFilename は NULL 以外で、有効なパスを参照する必要があります。 |
JET_errDatabaseSharingViolation |
データベース ファイルは既に別のセッションによってアタッチされています。 |
JET_errFileNotFound |
szFilename に指定されたファイルが存在しません。 |
JET_errPrimaryIndexCorrupted |
プライマリ インデックスにエラーがあります。 これは、物理的な破損 (ディスクやメモリの破損など) が原因である可能性があります。 また、古いオペレーティング システムで最後に変更されたデータベースをアタッチし、プライマリ インデックスが Unicode データを含む列を超えている場合にも返される場合があります。 Unicode データに対するインデックスの詳細については、解説を参照してください。 |
JET_errSecondaryIndexCorrupted |
セカンダリ インデックスでエラーが発生しました。 これは、物理的な破損 (ディスクやメモリの破損など) が原因である可能性があります。 また、古いオペレーティング システムで最後に変更されたデータベースをアタッチし、セカンダリ インデックスが Unicode データを含む列を超えている場合にも返される場合があります。 Unicode データに対するインデックスの詳細については、解説を参照してください。 esentutl -d コマンドを使用してデータベースがオフライン ユーティリティで最適化されると、セカンダリ インデックスは完全に再構築されます。 |
JET_errTooManyAttachedDatabases |
インスタンスごとにアタッチできるデータベースの数は限られています。 制限は現在、インスタンスあたり 7 つのデータベースです。 |
JET_wrnDatabaseAttached |
データベース ファイルがこのセッションによって既にアタッチされていることを示す致命的でない警告。 |
解説
データベース ファイルは、 JetDetachDatabase または JetDetachDatabase2 を使用してデタッチされます。
解説については、「 JetAttachDatabase 」を参照してください。
必要条件
要件 | 値 |
---|---|
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 |
JetAttachDatabase2W (Unicode) および JetAttachDatabase2A (ANSI) として実装されます。 |
参照
拡張可能なストレージ エンジン ファイル
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter