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