Поделиться через


Структура 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 и 0x5d через 0x7f.

  • Она не должна начинаться с пробела.

  • Он должен состоять по крайней мере из одного символа, отличного от пробела.

szTemplateTableName

Имя существующей таблицы, от которой следует наследовать базовый язык определения данных (DDL). Использование таблицы шаблона позволяет легко создавать множество таблиц с одинаковыми столбцами и индексами.

ulPages

Начальное количество страниц базы данных, выделяемых для таблицы. Если в эту таблицу вставить много строк, можно уменьшить фрагментацию.

ulDensity

Плотность таблицы в процентных пунктах. Число должно быть либо 0, либо находиться в диапазоне от 20 до 100. Передача 0 означает, что следует использовать значение по умолчанию. Значение по умолчанию равно 80.

rgcolumncreate

Массив JET_COLUMNCREATE структур, каждая из которых соответствует столбцу, создаваемому в новой таблице.

cColumns

Количество элементов JET_COLUMNCREATE в параметре rgcolumncreate .

rgindexcreate

Массив JET_INDEXCREATE2 структур, каждая из которых соответствует индексу, создаваемому в новой таблице.

cIndexes

Число JET_INDEXCREATE2 элементов в параметре rgindexcreate .

szCallback

Функция, вызываемая во время определенных событий. cbtyp определяет, когда будет вызываться функция обратного вызова.

Формат szCallback должен быть "module!function" — например, "alpha!beta" относится к бета-функции в модуле с именем "alpha".

Прототип функции должен соответствовать функции обратного вызова 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. Дополнительные сведения см. в разделе ng-value в JET_SPACEHINTS. Столбцы с длинными значениями меньше этого значения могут быть разделены, если запись становится слишком большой.

cbSeparateLV появилась в Windows 7.

tableid

Поле вывода, в котором содержится JET_TABLEID новой таблицы в случае успешного вызова API. Если вызов API завершается сбоем, значение не определено. Эта таблица открывается исключительно.

cCreated

Выходное поле, содержащее количество объектов, созданных при успешном вызове API. Если вызов API завершается сбоем, значение не определено.

Количество созданных объектов равно сумме успешно созданных столбцов, таблиц и индексов.

Требования

Требование Значение

Клиент

Требуется Windows Vista или Windows XP.

Сервер

Требуется Windows Server 2008 или Windows Server 2003.

Верхняя часть

Объявлено в Esent.h.

Юникод

Реализовано как JET_TABLECREATE3_W (Юникод) и JET_TABLECREATE3_A (ANSI).

См. также раздел

JET_CALLBACK
JET_CBTYP
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_TABLEID
JetCreateTable
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetDefragment2