Структура 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