Функция JetAddColumn
Применимо к: Windows | Windows Server
Функция JetAddColumn
Функция JetAddColumn добавляет новый столбец в существующую таблицу в базе данных ESE.
JET_ERR JET_API JetAddColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_COLUMNDEF* pcolumndef,
__in_opt const void* pvDefault,
__in unsigned long cbDefault,
__out_opt JET_COLUMNID* pcolumnid
);
Параметры
sesid
Контекст сеанса базы данных, используемый для вызова API.
tableid
Таблица, в которую добавляется столбец.
szColumnName
Имя добавляемого столбца. Имя должно соответствовать следующим критериям:
Длина не должна превышать JET_cbNameMost символов, не включая завершающее значение NULL.
Он должен содержать только символы из следующих наборов: от 0 до 9, от A до Z, от a до z и всех других знаков препинания, кроме восклицательного знака (!), запятой (,), открывающей скобки ([) и закрывающей скобки (]), то есть символы ASCII 0x20, 0x22 через 0x2d, 0x2f через 0x5a, 0x5c и 0x5d через 0x7f.
Она не может начинаться с пробела.
Он должен содержать по крайней мере один символ, отличный от пробела.
pcolumndef
Указатель на структуру JET_COLUMNDEF , которая определяет данные, которые могут храниться в столбце.
pvDefault
Указатель на буфер, содержащий значение по умолчанию для столбца. Длина буфера — cbDefault. Если значение по умолчанию отсутствует, задайте для параметра pvDefaultзначение NULL , а для cbDefault — нулевое значение. Значения по умолчанию не могут превышать JET_cbColumnMost байт для фиксированных столбцов или JET_cbLVDefaultValueMost байтов для длинных значений. Если значение по умолчанию больше этого, оно будет автоматически усечено.
Если для grbit задано JET_bitColumnUserDefinedDefault, pvDefault будет интерпретироваться как указатель на структуру JET_USERDEFINEDDEFAULT .
cbDefault
Размер (в байтах) буфера, указанного в pvDefault.
pcolumnid
Указатель на структуру JET_COLUMNID , которая при успешном выполнении получает идентификатор только что созданного столбца. При сбое значение не определено.
Возвращаемое значение
Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errFixedDDL |
Предпринята попытка изменить определение данных фиксированной таблицы DDL. Примером таблицы с фиксированным DDL является таблица шаблонов. |
JET_errInvalidParameter |
В API передан недопустимый параметр. Ниже приведены некоторые примеры недопустимых параметров.
|
JET_errInTransaction |
Предпринята попытка добавить столбец с набором битов JET_bitColumnUnversioned, но сеанс в настоящее время находится в транзакции. |
JET_errColumnDuplicate |
Столбец уже существует. Предпринята попытка добавить столбец без сведений о версии, и этот столбец уже существует. |
JET_errTableNotEmpty |
Таблица содержит данные. Столбец Escrow Update можно добавить только в пустую таблицу. |
JET_errRecordTooBig |
Запись слишком велика. Сумма параметра cbMax для фиксированных столбцов не должна превышать определенное значение. |
JET_errTooManyColumns |
Предпринята попытка добавить в таблицу слишком много столбцов. Таблица может содержать не более JET_ccolFixedMost фиксированных столбцов, не более JET_ccolVarMost столбцов переменной длины и не более JET_ccolTaggedMost столбцов с тегами. |
JET_errColumnRedundant |
Предпринята попытка добавить избыточный столбец. В каждой таблице должно быть не более одного столбца с автоматическим приращением и не более одного столбца версии. |
JET_errCallbackNotResolved |
Не удалось разрешить функцию обратного вызова. Возможно, библиотека DLL не найдена или функция в библиотеке DLL не найдена. В журнале событий будут предоставлены дополнительные сведения, если включено достаточное ведение журнала. |
JET_wrnColumnMaxTruncated |
Предупреждение, указывающее, что максимальная длина (cbMax) фиксированного или переменного столбца превышает JET_cbColumnMost. Это ограничение не применяется к длинным значениям ( то есть JET_coltypLongBinary и JET_coltypLongText). |
JET_errInvalidName |
В качестве szColumnName передано недопустимое имя. Дополнительные сведения об ограничениях см. в критериях для szColumnName. |
JET_errInvalidColumnType |
Для поля coltyp не задан допустимый тип столбца. |
JET_errInvalidCodePage |
Параметр cp структуры JET_COLUMNDEF не имеет допустимой кодовой страницы. Единственными допустимыми значениями текстовых столбцов являются английский (1252) и Юникод (1200). Значение 0 означает, что будет использоваться значение по умолчанию (английский язык, 1252). |
JET_errTaggedNotNULL |
JET_bitColumnNotNULL нельзя использовать со столбцами с тегами, длинными значениями или столбцами SLV. |
JET_errInvalidgrbit |
Указана недопустимая комбинация grbits . Ниже приведены некоторые причины этой ошибки.
|
JET_errMultiValuedColumnMustBeTagged |
Столбец с несколькими значениями (JET_bitColumnMultiValued) можно использовать только в столбце с тегами или столбце с длинным значением (JET_coltypLongBinary или JET_coltypLongText). |
JET_errCannotBeTagged |
Предпринята попытка использовать столбец с тегами, если столбец может не быть помечен. Ниже приведены некоторые ограничения для запрета столбцов с тегами.
|
JET_errExclusiveTableLockRequired |
Для этой операции требовалась монопольная блокировка таблицы. |
JET_wrnColumnMaxTruncated |
Предупреждение, указывающее, что максимальная длина (cbMax) фиксированного или переменного столбца превышает JET_cbColumnMost. Это ограничение не применяется к длинным значениям ( то есть JET_coltypLongBinary и JET_coltypLongText). |
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetAddColumnW (Юникод) и JetAddColumnA (ANSI). |
См. также:
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2