共用方式為


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 函式進行變更。

傳遞零表示資料庫引擎不會強制執行最大值。

grbit

一組位,其中包含要用於此呼叫的選項,其中包含下列零個或多個內容:

意義

JET_bitDbDeleteCorruptIndexes

如果已設定 JET_paramEnableIndexChecking ,則會刪除 Unicode 資料的所有索引。 如需詳細資訊,請參閱<備註>一節。

JET_bitDbDeleteUnicodeIndexes

不論 JET_paramEnableIndexChecking的設定為何,都會刪除所有 Unicode 資料的索引。 如需詳細資訊,請參閱<備註>一節。

JET_bitDbReadOnly

防止修改資料庫。

JET_bitDbUpgrade

保留供未來使用。

傳回值

函式會傳回其中一個 JET_ERR 錯誤碼。 以下是最常傳回的 。 (如需此 API 的完整錯誤清單,請參閱 可延伸儲存引擎錯誤碼。)

傳回碼

Description

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

每個實例只能附加有限數目的資料庫。 此限制目前為每個實例有七個資料庫。

JET_wrnDatabaseAttached

指出此會話已經附加資料庫檔案的非嚴重警告。

備註

使用 JetDetachDatabaseJetDetachDatabase2卸離資料庫檔案。

如需備註,請參閱 JetAttachDatabase

規格需求

需求

用戶端

需要 Windows Vista、Windows XP 或 Windows 2000 Professional。

Server

需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。

標頭

在 Esent.h 中宣告。

程式庫

使用 ESENT.lib。

Dll

需要ESENT.dll。

Unicode

實作為 JetAttachDatabase2W (Unicode) 和 JetAttachDatabase2A (ANSI) 。

另請參閱

可延伸儲存引擎檔案
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter