JET_TABLECREATE2 结构

适用于: Windows |Windows Server

JET_TABLECREATE2 结构

JET_TABLECREATE2 结构包含创建用 ESE 数据库中的列和索引填充的表以及指定回调函数所需的信息。 JET_TABLECREATE2结构由 JetCreateTableColumnIndex2 使用。

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

要为表分配的初始数据库页数。 如果在此表中插入了多个行,则指定大于 1 的数字可以减少碎片。

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。 此位字段由以下一个或多个位组成。

Value

含义

JET_cbtypFinalize

当可最终完成的列变为零时,将调用回调函数。

JET_cbtypBeforeInsert

在插入记录之前,将调用回调函数。

JET_cbtypAfterInsert

数据库引擎完成插入记录后,将调用回调函数。

JET_cbtypBeforeReplace

在修改记录之前,将调用回调函数。

JET_cbtypAfterReplace

完成对记录的修改后,将调用回调函数。

JET_cbtypBeforeDelete

在删除记录之前,将调用回调函数。

JET_cbtypAfterDelete

删除记录后,将调用回调函数。

JET_cbtypUserDefinedDefaultValue

将调用回调函数来计算用户定义的默认值。

JET_cbtypOnlineDefragCompleted

回调函数将在对 JetDefragment2 的调用完成后调用。

JET_cbtypFreeCursorLS

当必须释放与游标关联的本地存储时,将调用回调函数。

JET_cbtypFreeTableLS

当必须释放与表关联的本地存储时,将调用回调函数。

grbit

包含此调用的选项的一组位,其中包括零个或多个以下值。

Value

含义

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。

服务器

需要 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