共用方式為


JetCreateDatabase 函式

適用于: Windows |Windows Server

JetCreateDatabase 函式

JetCreateDatabase函式會建立並附加要與 ESE 資料庫引擎搭配使用的資料庫檔案。 呼叫 JetCreateDatabase2 並將 cpgDatabaseSizeMax 設定為零,與呼叫 JetCreateDatabaseszConnect 設為 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
系統參數