JetCreateInstance2 函式
適用于: Windows |Windows Server
JetCreateInstance2 函式
JetCreateInstance2函式是用來設定資料庫引擎的新實例,以用於單一進程,並指定顯示名稱。
Windows XP:JetCreateInstance2 是在 Windows XP 中引進。
JET_ERR JET_API JetCreateInstance2(
__out JET_INSTANCE* pinstance,
__in_opt const tchar* szInstanceName,
__in_opt const tchar* szDisplayName,
__in JET_GRBIT grbit
);
參數
pinstance
將接收新建立實例的輸出緩衝區。
szInstanceName
指定要建立之實例的唯一字串識別碼。 這個字串在裝載資料庫引擎的指定進程中必須是唯一的。
注意 Null 值會被視為實例的有效字串識別碼。 只有一個實例可以有 Null 字串識別碼。
szDisplayName
要建立之實例的顯示名稱。 當此參數不存在時,其值會假設為 Null。
grbit
保留供未來使用。 當此參數不存在時,其值會假設為零。
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errInstanceNameInUse |
指定的實例名稱已經用於這個進程。 |
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。 當Pinstance為 Null 時,JetCreateInstance可能會發生這種情況。 |
JET_errRunningInOneInstanceMode |
作業失敗,因為它無法在資料庫引擎以單一實例模式運作時使用, (Windows 2000 相容性模式) 。 |
JET_errTooManyInstances |
無法建立新的實例,因為已達到實例的數目上限。 使用 JetSetSystemParameter 設定支援的實例數目上限,請使用 JET_paramMaxInstances。 |
成功時,將會配置新的實例,並傳回其識別碼。 此時,實例的所有系統參數都會有全域預設系統參數的值。 一旦配置實例,就必須在稍後終止和/或釋出實例。
失敗時,會傳回代表失敗原因的錯誤,而且不會配置任何實例。
備註
實例必須先使用 JetInit 的呼叫初始化, 才能由 JetSetSystemParameter以外的任何專案使用。
即使從未使用JetInit初始化該實例,呼叫JetTerm函式也會終結實例。 任何一次可建立的實例數目上限是由 JET_paramMaxInstances所控制,可由 JetSetSystemParameter呼叫來設定。 實例是資料庫引擎的復原性單位。 它會控制用來保護一組資料庫檔案中資料完整性的所有檔案生命週期。 這些檔案包括檢查點檔案和交易記錄檔。
如果函式成功,資料庫引擎會自動變更為多重實例模式,做為此呼叫的副作用。 如果應用程式只想要允許進程中的一個實例,則 JetInit 應該用來在 Windows 2000 相容性模式中啟動資料庫引擎。
如果有的話, szDisplayName 參數將用來識別事件記錄檔之類的實例,或透過 JetGetInstanceInfo 或 JetOSSnapshotFreeze) 等函式來識別實例,例如備份應用程式 (。 如果未提供顯示名稱,則會改用唯一 的 szInstanceName 參數,如果存在,則會傳回空字串。 如果引擎未設定執行模式,則在此呼叫之後,它會設定為多重實例模式。
可能執行多個 Jet 實例之進程的一般啟動順序如下:
JetCreateInstance2的呼叫,它會配置並命名實例。
針對該實例多次呼叫 JetSetSystemParameter ,以設定不同的系統參數。 請注意,某些系統參數對於每個實例而言都必須是唯一的 (,例如 JET_paramSystemPath 或 JET_paramLogFilePath) ,因此最可能的話,必須設定每個實例。
使用 JetInit 或 JetInit2啟動實例。 若要終止和/或釋放實例,請使用 JetTerm 或 JetTerm2。
如果這是要啟動的第一個實例,則會在此呼叫期間執行一些額外的步驟,以便進行基本系統初始化和設定。 其中一些步驟可能會導致特定錯誤從JET_errOutOfMemory開始,但其他步驟也 (請參閱傳回值以取得詳細資訊) 。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
Unicode |
實作為 JetCreateInstance2W (Unicode) 和 JetCreateInstance2A (ANSI) 。 |
另請參閱
JET_ERR
JET_INSTANCE
JetCreateInstance
JetEnableMultiInstance
JetGetInstanceInfo
JetInit
JetInit2
JetOSSnapshotFreeze
JetSetSystemParameter
JetTerm
JetTerm2