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 |
指出此會話已經附加資料庫檔案的非嚴重警告。 |
備註
使用 JetDetachDatabase 或 JetDetachDatabase2卸離資料庫檔案。
如需備註,請參閱 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