Функция JetCreateTableColumnIndex4W
Применимо к: Windows | Windows Server
Функция JetCreateTableColumnIndex4W создает таблицу в подсистеме расширяемого хранилища (база данных ESE( с начальным набором индексов и начальным набором столбцов из массива JET_TABLECREATE3 структур. Структура JET_TABLECREATE3 позволяет указать функцию обратного вызова.
Функция JetCreateTableColumnIndex4W появилась в Windows 8 операционной системе.
JET_ERR JET_API JetCreateTableColumnIndex4W(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE3* ptablecreate
);
Параметры
sesid
Контекст сеанса базы данных, используемый для вызова API.
dbid
Идентификатор базы данных, используемый для вызова API.
ptablecreate
Указатель на структуру JET_TABLECREATE3 , которая определяет таблицу, которую необходимо создать. Дополнительные сведения см . в разделе JET_TABLECREATE3 .
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из кодов возврата, перечисленных в следующей таблице. Дополнительные сведения о возможных ошибках расширяемого хранилища (ESE) см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errCallbackNotResolved |
Не удалось разрешить функцию обратного вызова. Возможно, библиотека DLL не найдена или функция в библиотеке DLL не найдена. Если ведение журнала включено достаточно, журнал событий будет предоставлять дополнительные сведения. |
JET_errCannotIndex |
Предпринята попытка индексировать столбец escrow-update или SLV (обратите внимание, что столбцы SLV устарели). |
JET_errCannotNestDDL |
Возвращается, если параметр ptablecreate-grbit> задает значение JET_bitTableCreateTemplateTable, но параметр ptablecreate-szTemplateTableName> имеет значение NULL. |
JET_errColumnDuplicate |
Столбец уже существует. |
JET_errColumnNotFound |
Предпринята попытка индексировать несуществующий столбец. Попытка условного индексирования несуществующего столбца также может привести к этой ошибке. |
JET_errColumnRedundant |
Предпринята попытка добавить избыточный столбец. Должно существовать не более одного столбца автоинкремента и не более одного столбца версии для каждой таблицы. |
JET_errDensityInvalid |
Эта ошибка будет возвращена, если для элемента ulDensityструктуры JET_INDEXCREATE2 задано число меньше 20 или более 100. |
JET_errDDLNotInheritable |
Означает, что таблица с именем в элементе szTemplateTableName структуры JET_TABLECREATE3 не помечена как таблица шаблонов (то есть в этой таблице не задано значение параметра JET_bitTableCreateTemplateTable). |
JET_errIndexDuplicate |
Предпринята попытка определить два идентичных индекса. |
JET_errIndexHasPrimary |
Предпринята попытка указать несколько первичных индексов для таблицы. Таблица должна иметь ровно один первичный индекс. Если первичный индекс не указан, ядро СУБД будет прозрачно создавать его. |
JET_errIndexInvalidDef |
Указано недопустимое определение индекса. Ниже приведены некоторые из возможных причин этой ошибки.
|
JET_errIndexTuplesInvalidLimits |
Применяется к версиям Windows, начиная с Windows XP. Указана JET_TUPLELIMITS структура, и ее ограничения не поддерживаются. Дополнительные сведения см. в разделе примечаний структуры JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Применяется к версиям Windows, начиная с Windows XP. Индекс кортежа не может быть уникальным (то есть для элемента grbit структуры JET_INDEXCREATE2 не должно быть задано как JET_bitIndexPrimary, так и JET_bitIndexUnique значений). |
JET_errIndexTuplesOneColumnOnly |
Применяется к версиям Windows, начиная с Windows XP. Индекс кортежа может находиться только над одним столбцом (то есть, если элемент grbit структуры JET_INDEXCREATE2 имеет JET_bitIndexTuples заданное значение, а элемент szKey структуры JET_INDEXCREATE2 указывает более одного столбца). |
JET_errIndexTuplesSecondaryIndexOnly |
Применяется к версиям Windows, начиная с Windows XP. Индекс кортежа не может быть первичным индексом (то есть элемент grbit структуры JET_INDEXCREATE2 не должен иметь JET_bitIndexPrimary и JET_bitIndexTuples). |
JET_errIndexTuplesTextColumnsOnly |
Применяется к версиям Windows, начиная с Windows XP. Индекс кортежа может находиться только в текстовом столбце или столбце Юникода. Попытка индексировать другие столбцы (например, двоичные столбцы) приведет к JET_errIndexTuplesTextColumnsOnly коду ответа. |
JET_errIndexTuplesVarSegMacNotAllowed |
Применяется к версиям Windows, начиная с Windows XP. Индекс кортежа не позволяет задать элемент cbVarSegMacструктуры JET_INDEXCREATE2 . |
JET_errInTransaction |
Предпринята попытка создать индекс без сведений о версии во время транзакции. |
JET_errInvalidCodePage |
Член cp структуры JET_COLUMNCREATE не имеет допустимой кодовой страницы. Единственными допустимыми значениями для текстовых столбцов являются английский (1252) и Юникод (1200). Значение 0 означает, что будет использоваться значение по умолчанию (английский, 1252). |
JET_errInvalidColumnType |
Член coltypструктуры JET_COLUMNCREATE не имеет допустимого типа столбца. |
JET_errInvalidCreateIndex |
Ниже приведены некоторые причины возникновения этой ошибки.
|
JET_errInvalidgrbit |
В структуре JET_TABLECREATE3 указана недопустимая комбинация элементов grbit. Определение индекса является недопустимым, так как элемент grbit содержит несогласованные значения. Ниже приведены некоторые возможные причины.
|
JET_errInvalidLanguageId |
Был передан недопустимый код языкового стандарта (LCID) (либо через элемент lcidструктуры JET_UNICODEINDEX , на которую указывает элемент pidxunicode в структуре JET_INDEXCREATE2 , либо через поле lcidструктуры JET_INDEXCREATE2 ). |
JET_errInvalidParameter |
Указан недопустимый параметр. Ниже приведены некоторые возможные причины.
|
JET_errRecordTooBig |
Запись слишком велика. Сумма элемента cbMaxструктуры JET_COLUMNCREATE для всех фиксированных столбцов не должна превышать определенное значение. |
JET_errTableDuplicate |
Таблица уже существует. |
JET_errTooManyColumns |
Предпринята попытка добавить в таблицу слишком много столбцов. Таблица может содержать не более JET_ccolFixedMost фиксированных столбцов, не более JET_ccolVarMost столбцов переменной длины и не более JET_ccolTaggedMost столбцов с тегами. |
JET_errUnicodeTranslationFail |
Ошибка при попытке нормализовать столбец Юникода. Это может быть вызвано отсутствием системных ресурсов. |
JET_errSpaceHintsInvalid |
Элемент структуры пространственных указаний JET не был правильным или не может быть практическим. |
Комментарии
Функция JetCreateTableColumnIndex4W создает таблицу с начальным набором столбцов и индексов. Дополнительные столбцы и индексы можно добавлять и удалять динамически с помощью функций JetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex, JetCreateIndex2, JetCreateIndex3, JetCreateIndex4W и JetDeleteIndex .
Как и в случае с функцией JetOpenTable , когда приложение выполняется с помощью возвращаемого tableid, функция JetCloseTable должна закрыть приложение.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows 8. |
Сервер |
Требуется Windows Server 2012. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
См. также раздел
JET_CBTYP
JET_DBID
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_INDEXCREATE2
JET_SESID
JET_TABLEID
JET_TABLECREATE2
JET_TABLECREATE3
JET_TUPLELIMITS
JetAddColumn
JetCreateIndex
JetCreateIndex2
JetCreateIndex3
JetCreateTable
JetCreateTableColumnIndex
JetDeleteColumn
JetDeleteColumn2