JetCreateDatabase2 函式
適用于: Windows |Windows Server
JetCreateDatabase2 函式
JetCreateDatabase2函式會建立並附加要與指定資料庫大小上限的 ESE 資料庫引擎搭配使用的資料庫檔案。 將cpgDatabaseSizeMax設定為零呼叫JetCreateDatabase2與呼叫JetCreateDatabase與szConnect設為 Null 相同。 每個實例目前最多可以建立七個資料庫。
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 KB,而且可以在建立資料庫之前,使用 JetSetSystemParameter 進行變更。
傳遞零表示資料庫引擎不會強制執行最大值。
pdbid
在成功呼叫時,緩衝區的指標包含資料庫的識別碼。 失敗時,此值為未定義。
grbit
指定下列選項之零或多個位群組。
值 |
意義 |
---|---|
JET_bitDbOverwriteExisting |
根據預設,如果 呼叫 JetCreateDatabase 或 JetCreateDatabase2 且資料庫已經存在,API 呼叫將會失敗,而且不會覆寫原始資料庫。 JET_bitDbOverwriteExisting變更此行為,舊資料庫將會以新的資料庫覆寫。 Windows XP 和更新版本。 |
JET_bitDbRecoveryOff |
JET_bitDbRecoveryOff關閉記錄。 設定此位會失去重新執行記錄檔,並在發生重大事件之後,將資料庫復原為一致的可用狀態。 |
JET_bitDbShadowingOff |
設定JET_bitDbShadowingOff將會停用某些內部資料庫結構的重複 (陰影) 。 這些結構的重複作業是為了復原而完成,因此設定JET_bitDbShadowingOff將會移除該復原能力。 |
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
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 |
每個實例只能附加有限的資料庫數目。 限制目前是每個實例的七個資料庫。 |
JET_wrnDatabaseAttached |
非嚴重警告,表示此會話已經附加資料庫檔案。 |
JET_wrnFileOpenReadOnly |
JET_wrnFileOpenReadOnly表示檔案已附加為唯讀,但 JetCreateDatabase 未通過JET_bitDbReadOnly。 資料庫仍會以唯讀存取權開啟。 |
備註
如果 szFilename 中指定的資料庫存在且未傳入JET_bitDbOverwriteExisting,API 呼叫將會失敗。 如果傳入JET_bitDbOverwriteExisting,則會先刪除舊的資料庫檔案。
如果 API 建立資料庫檔案,然後遇到另一個錯誤,則會清除並刪除檔案。
JetCreateDatabase2 會隱含開啟資料庫。 後續不需要呼叫 JetOpenDatabase。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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 |
實作為 JetCreateDatabase2W (Unicode) 和 JetCreateDatabase2A (ANSI) 。 |
另請參閱
可延伸儲存引擎檔案
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
系統參數