JET_TABLECREATE3 结构
适用于: Windows |Windows Server
JET_TABLECREATE3 结构包含创建在可扩展存储引擎 (ESE) 数据库中填充列和索引的表所需的信息,并指定回调函数。 JET_TABLECREATE3 结构由 JetCreateTableColumnIndex3 函数使用。
JET_TABLECREATE3结构是在 Windows 7 操作系统中引入的。
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
要为表分配的初始数据库页数。 如果在此表中插入了许多行,则指定大于 1 的数字可以减少碎片。
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。
此位域由下表中列出的一个或多个位值组成。
值 |
含义 |
---|---|
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。 |
服务器 |
需要 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