JET_TABLECREATE3 結構
適用于: Windows |Windows Server
JET_TABLECREATE3結構包含在可延伸儲存引擎中建立填入資料行和索引之資料表所需的資訊, (ESE) 資料庫,以及指定回呼函式。 JetCreateTableColumnIndex3函式會使用JET_TABLECREATE3結構。
windows 7 作業系統中引進 了JET_TABLECREATE3 結構。
typedef struct tagJET_TABLECREATE3 {
unsigned long cbStruct;
tchar* szTableName;
tchar* szTemplateTableName;
unsigned long ulPages;
unsigned long ulDensity;
JET_COLUMNCREATE* rgcolumncreate;
unsigned long cColumns;
JET_INDEXCREATE2* rgindexcreate;
unsigned long cIndexes;
tchar* szCallback;
JET_CBTYP cbtyp;
JET_GRBIT grbit;
JET_TABLEID tableid;
un JET_GRBIT grbit;
JET_SPACEHINTS* pSeqSpacehints;
JET_SPACEHINTS* pLVSpacehints;
unsigned long cbSeparateLV;
JET_TABLEID tableid;
unsigned long cCreated;
} JET_TABLECREATE3;>
成員
cbStruct
此結構的大小,以位元組為單位, (以供日後擴充) 。 它必須設定為 sizeof,以位元組為單位 ( JET_TABLECREATE3 ) 。
szTableName
要建立之資料表的名稱。
名稱必須符合下列條件:
它必須具有小於JET_cbNameMost的值,不包括終止 Null。
它必須包含下列一組字元:0 到 9、A 到 Z、a 到 z,以及除了驚嘆號 (!) 、逗號 (、) 、左括弧 ([) ],以及右括弧 (]) ;也就是說,ASCII 字元0x20、0x22到0x2d、0x2f 0x5a、0x5c,以及透過0x7f 0x5d。
它不得以空格開頭。
它至少必須包含一個非空白字元。
szTemplateTableName
繼承基底資料定義語言的現有資料表名稱, (DDL) 。 使用範本資料表可讓您輕鬆地建立具有相同資料行和索引的許多資料表。
ulPages
要配置給資料表的資料庫頁面初始數目。 如果在此資料表中插入許多資料列,則指定大於一的數位可能會減少片段。
ulDensity
資料表密度,以百分比點為單位。 數位必須是 0 或介於 20 到 100 的範圍內。 傳遞 0 表示應該使用預設值。 預設值是 80。
rgcolumncreate
JET_COLUMNCREATE結構的陣列,每個結構都對應至新資料表中要建立的資料行。
cColumns
rgcolumncreate參數中的JET_COLUMNCREATE專案數目。
rgindexcreate
JET_INDEXCREATE2結構的陣列,每個結構都對應至新資料表中要建立的索引。
cIndexes
rgindexcreate參數中的JET_INDEXCREATE2專案數目。
szCallback
在特定事件期間呼叫的函式。 cbtyp 會決定何時會呼叫回呼函式。
szCallback的格式必須是 「module!function」,例如「Alpha!Beta」 是指名為 「Alpha」 的模組中的 Beta 函式。
函式的原型必須符合 JET_CALLBACK 回呼函式。
cbtyp
描述 szCallback所指定的回呼函式類型。 如需詳細資訊,請參閱 JET_CBTYP。
這個 bitfield 是由下表所列的一或多個位值所組成。
值 |
意義 |
---|---|
JET_cbtypFinalize |
當可完成的資料行已消失為零時,將會呼叫回呼函式。 |
JET_cbtypBeforeInsert |
回呼函式會在記錄插入之前呼叫。 |
JET_cbtypAfterInsert |
在資料庫引擎完成插入記錄之後,將會呼叫回呼函式。 |
JET_cbtypBeforeReplace |
在修改記錄之前,將會呼叫回呼函式。 |
JET_cbtypAfterReplace |
完成記錄修改之後,將會呼叫回呼函式。 |
JET_cbtypBeforeDelete |
刪除記錄之前,將會呼叫回呼函式。 |
JET_cbtypAfterDelete |
刪除記錄之後,將會呼叫回呼函式。 |
JET_cbtypUserDefinedDefaultValue |
系統會呼叫回呼函式來計算使用者定義的預設值。 |
JET_cbtypFreeCursorLS |
必須釋放與資料指標相關聯的本機儲存體時,將會呼叫回呼函式。 |
JET_cbtypFreeTableLS |
必須釋放與資料表相關聯的本機儲存體時,將會呼叫回呼函式。 |
grbit
包含下表所列之零或多個呼叫選項值的位群組。
值 |
意義 |
---|---|
JET_bitTableCreateFixedDDL |
防止資料表上的 DDL 作業 (,例如新增或移除資料行) 。 |
JET_bitTableCreateTemplateTable |
使資料表成為範本資料表。 然後,新的資料表可以將此資料表的名稱指定為其範本資料表。 設定JET_bitTableCreateTemplateTable意指JET_bitTableCreateFixedDDL。 |
JET_bitTableCreateNoFixedVarColumnsInDerivedTables |
必須與JET_bitTableCreateTemplateTable搭配使用。 已取代。 請勿使用。 |
pSeqSpacehints
預設循序索引 之JET_SPACEHINTS 結構的指標。
pSeqSpacehints 已在 Windows 7 中引進。
pLVSpacehints
分隔長值樹狀結構 之JET_SPACEHINTS 結構的指標。
pLVSpacehints 已在 Windows 7 中引進。
cbSeparateLV
要分隔內部 LV 與主要記錄的大小。 分隔 LV 樹狀結構的任何長值 c 結構。 如需詳細資訊,請參閱 JET_SPACEHINTS中的 ng 值。 如果記錄太大,則小於此值的長值資料行可能會分隔。
cbSeparateLV 已在 Windows 7 中引進。
tableid
如果 API 呼叫成功,則為保留新資料表 JET_TABLEID 的輸出欄位。 如果 API 呼叫失敗,則值未定義。 此資料表是獨佔開啟的。
cCreated
輸出欄位,其中包含 API 呼叫成功時所建立的物件計數。 如果 API 呼叫失敗,則此值為未定義。
所建立物件的計數等於成功建立的資料行、資料表和索引總和。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
標頭 |
在 Esent.h 中宣告。 |
Unicode |
實作為 JET_TABLECREATE3_W (Unicode ) 和 JET_TABLECREATE3_A (ANSI) 。 |
另請參閱
JET_CALLBACK
JET_CBTYP
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_TABLEID
JetCreateTable
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetDefragment2