Структура JET_TABLECREATE2

Применимо к: Windows | Windows Server

Структура JET_TABLECREATE2

Структура JET_TABLECREATE2 содержит сведения, необходимые для создания таблицы, заполненной столбцами и индексами в базе данных ESE, и которая обозначает функцию обратного вызова. Структура JET_TABLECREATE2 используется JetCreateTableColumnIndex2.

Windows XP: Структура JET_TABLECREATE2 представлена в Windows XP.

    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

число элементов JET_COLUMNCREATE в rgcolumncreate.

rgindexcreate

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

cIndexes

Количество элементов JET_INDEXCREATE в rgindexcreate.

szCallback

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

Формат szCallback должен быть "module!function", например alpha!beta относится к бета-функции в модуле с именем "alpha". Прототип функции должен соответствовать 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

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

cCreated

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

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

Требования

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

Клиент

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

Сервер

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

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

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

Юникод

Реализуется как JET_TABLECREATE2_W (Юникод) и JET_TABLECREATE2_A (ANSI).

См. также:

JET_CALLBACK
JET_CBTYP
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_TABLEID
JetCreateTable
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetDefragment2