共用方式為


JetCreateDatabase2 函式

適用于: Windows |Windows Server

JetCreateDatabase2 函式

JetCreateDatabase2函式會建立並附加要與指定資料庫大小上限的 ESE 資料庫引擎搭配使用的資料庫檔案。 將cpgDatabaseSizeMax設定為零呼叫JetCreateDatabase2與呼叫JetCreateDatabaseszConnect設為 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

根據預設,如果 呼叫 JetCreateDatabaseJetCreateDatabase2 且資料庫已經存在,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
系統參數