JetCreateIndex4W 函式
適用于: Windows |Windows Server
JetCreateIndex4W函式會在可延伸儲存引擎中的資料上建立索引, (ESE) 資料庫,可用來快速找出特定資料。
JetCreateIndex4W函式是在Windows 8作業系統中引進的。
JET_ERR JET_API JetCreateIndex4W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
參數
sesid
要用於 API 呼叫的資料庫會話內容。
tableid
將建立索引的資料表。
pindexcreate
JET_INDEXCREATE2結構的陣列,每個結構都會定義要建立的索引。
cIndexCreate
pindexcreate陣列中的專案數目。
傳回值
此函式會傳回具有下表所列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errCannotIndex |
嘗試在委付更新或 SLV 資料行上編制索引 (請注意,SLV 資料行已被取代) 。 |
JET_errColumnNotFound |
嘗試對不存在的資料行編制索引。 嘗試在不存在的資料行上有條件地編制索引,也可能會產生此錯誤。 |
JET_errDensityInvalid |
如果JET_INDEXCREATE2結構的ulDensity成員設定為小於 20 或大於 100 的數位,就會傳回此錯誤。 |
JET_errIndexDuplicate |
嘗試定義兩個相同的索引。 |
JET_errIndexHasPrimary |
嘗試為數據表指定一個以上的主索引。 資料表必須只有一個主要索引。 如果未指定主索引,資料庫引擎就會以透明方式建立一個。 |
JET_errIndexInvalidDef |
指定了不正確索引定義。 以下是此錯誤的一些可能原因:
|
JET_errIndexTuplesInvalidLimits |
適用于從 Windows XP 開始的 Windows 版本。 已指定 JET_TUPLELIMITS 結構,且不支援其限制。 如需詳細資訊,請參閱 JET_TUPLELIMITS 結構的一節。 |
JET_errIndexTuplesNonUniqueOnly |
適用于從 Windows XP 開始的 Windows 版本。 元組索引不能是唯一的 (grbit 不能同時設定 JET_bitIndexTuples 和 JET_bitIndexUnique) 。 |
JET_errIndexTuplesOneColumnOnly |
適用于從 Windows XP 開始的 Windows 版本。 Tuple 索引只能超過單一資料行 (,也就是JET_INDEXCREATE2結構的grbit成員已設定JET_bitIndexTuples,而JET_INDEXCREATE2結構的szKey成員會指定多個資料行) 。 |
JET_errIndexTuplesSecondaryIndexOnly |
適用于從 Windows XP 開始的 Windows 版本。 元組索引不能是主要索引 (,也就是說,JET_INDEXCREATE2結構的grbit成員不能同時設定JET_bitIndexPrimary和JET_bitIndexTuples) 。 |
JET_errIndexTuplesTextColumnsOnly |
適用于從 Windows XP 開始的 Windows 版本。 元組索引只能位於文字或 Unicode 資料行上。 例如,嘗試索引其他資料行 (,二進位資料行) 會導致 JET_errIndexTuplesTextColumnsOnly。 |
JET_errIndexTuplesVarSegMacNotAllowed |
適用于從 Windows XP 開始的 Windows 版本。 Tuple 索引不允許設定JET_INDEXCREATE2結構的cbVarSegMac成員。 |
JET_errInTransaction |
嘗試在交易中建立不含版本資訊的索引。 |
JET_errInvalidgrbit |
索引定義無效,因為JET_INDEXCREATE2結構的grbit成員包含不一致的值。 以下是一些可能的原因:
一次建立數個索引 (也就是說,如果 cIndexCreate 參數大於一) ,則沒有任何索引可能包含下列任何位:
|
JET_errInvalidLanguageId |
(JET_UNICODEINDEX結構中的lcid成員傳遞不正確地區設定識別碼 (LCID) ,JET_INDEXCREATE2結構中的pidxunicode成員包含指標,或透過JET_INDEXCREATE2結構的lcid成員) 。 |
JET_errInvalidName |
指定了不正確索引名稱。 如需詳細資訊 ,請參閱JET_INDEXCREATE2 。 |
JET_errInvalidParameter |
不正確參數已傳遞至 API。 以下是可能會傳回此錯誤的一些原因:
|
JET_errUnicodeTranslationFail |
嘗試正規化 Unicode 資料行時發生錯誤。 這可能是因為系統資源不足所造成。 |
JET_errSpaceHintsInvalid |
JET 空間提示結構的元素不正確或可採取動作。 |
備註
JetCreateIndex4W函式會逐一查看pindexcreate參數中指定的索引,有時會在第一次失敗時中止。 即使JET_INDEXCREATE2結構的 err 成員包含 JET_errSuccess ,也可能不會嘗試第一個索引之後發生錯誤的任何索引。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要Windows 8。 |
Server |
需要Windows Server 2012。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
另請參閱
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS