JetCreateDatabase 函式
適用于: Windows |Windows Server
JetCreateDatabase 函式
JetCreateDatabase函式會建立並附加要與 ESE 資料庫引擎搭配使用的資料庫檔案。 呼叫 JetCreateDatabase2 並將 cpgDatabaseSizeMax 設定為零,與呼叫 JetCreateDatabase 與 szConnect 設為 Null 相同。 目前,每個實例最多可以建立七個資料庫。
JET_ERR JET_API JetCreateDatabase(
__in JET_SESID sesid,
__in JET_PCSTR szFilename,
__in_opt JET_PCSTR szConnect,
__out JET_DBID* pdbid,
__in JET_GRBIT grbit
);
參數
sesid
要用於 API 呼叫的資料庫會話內容。
szFilename
要建立的資料庫名稱。
szConnect
保留供未來使用。 設定為 NULL。
pdbid
成功呼叫之緩衝區的指標包含資料庫的識別碼。 失敗時,此值為未定義。
grbit
指定下列零個或多個選項的位群組。
值 |
意義 |
---|---|
JET_bitDbOverwriteExisting |
根據預設,如果呼叫 JetCreateDatabase 且資料庫已經存在,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 建立資料庫檔案,然後遇到另一個錯誤,則會清除並刪除檔案。
JetCreateDatabase 會隱含開啟資料庫。 後續不一定呼叫 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 |
實作為 JetCreateDatabaseW (Unicode) 和 JetCreateDatabaseA (ANSI) 。 |
另請參閱
可延伸儲存引擎檔案
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase2
JetOpenDatabase
JetSetSystemParameter
系統參數