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


Структура JET_COLUMNBASE

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

Структура JET_COLUMNBASE

Структура JET_COLUMNBASE описывает параметры базового столбца. Функции JetGetColumnInfo и JetGetTableColumnInfo используют структуру JET_COLUMNBASE .

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wFiller;
      unsigned long cbMax;
      JET_GRBIT grbit;
      tchar szBaseTableName[256];
      tchar szBaseColumnName[256];
    } JET_COLUMNBASE;

Элементы

cbStruct

Размер этой структуры в байтах. Задайте для cbStruct значение sizeof( JET_COLUMNBASE ).

columnid

Зарезервировано. Задайте для columnid значение 0 (ноль).

coltyp

Тип столбца (например, текстовый, двоичный или числовой). Дополнительные сведения см. в разделе JET_COLTYP.

wCountry

Зарезервировано. Задайте значение 0 (ноль).

langid

Зарезервировано. Задайте значение 0 (ноль).

cp

Кодовая страница для столбца. Единственными допустимыми значениями текстовых столбцов являются английский (1252) и Юникод (1200). Нулевое значение означает, что будет использоваться значение по умолчанию (английский, 1252). Если столбец не является текстовым, для кодовой страницы автоматически устанавливается нулевое значение.

wFiller

Зарезервировано. Задайте значение 0 (ноль).

cbMax

Максимальная длина столбца переменной длины в байтах или фактическая длина столбца фиксированной длины в байтах.

grbit

Параметры столбца, включая ноль или более следующих значений.

Значение

Значение

JET_bitColumnFixed

Столбец является фиксированным и занимает один и тот же объем пространства в строке независимо от объема содержащихся в нем данных. JET_bitColumnFixed нельзя сочетать с JET_bitColumnTagged и использовать, если для элемента coltyp задано значение JET_coltypLongText или JET_coltypLongBinary.

JET_bitColumnTagged

Столбец помечен тегом и занимает место в базе данных, только если он содержит данные. JET_bitColumnTagged нельзя сочетать с JET_bitColumnFixed, JET_bitColumnVersion или JET_bitColumnEscrowUpdate.

JET_bitColumnNotNULL

Для столбца не должно быть задано значение NULL .

JET_bitColumnNotNULL нельзя сочетать с JET_bitColumnUserDefinedDefault.

JET_bitColumnVersion

Столбец — это столбец версии, указывающий версию строки. Значение этого столбца начинается с нуля и автоматически увеличивается для каждого обновления строки.

JET_bitColumnVersion можно использовать только в том случае, если для элемента coltyp задано значение JET_coltypLong и его нельзя объединить с JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged или JET_bitColumnUserDefinedDefault.

JET_bitColumnAutoincrement

Столбец автоматически увеличивается. Число является увеличивающимся числом и гарантированно будет уникальным в пределах таблицы. Однако числа могут быть не последовательными. Например, если в таблицу вставляется пять строк, автоматически увеличенный столбец может содержать значения { 1, 2, 6, 7, 8 }.

JET_bitColumnAutoincrement можно использовать только в том случае, если для элемента coltyp задано значение JET_coltypLong или JET_coltypCurrency и его нельзя объединить с JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault или JET_bitColumnVersion.

Windows 2000: JET_bitColumnVersion можно использовать только в том случае, если для элемента coltyp задано значение JET_coltypLong.

JET_bitColumnUpdatable

Допустимо только для вызовов JetGetColumnInfo. JET_bitColumnUpdatable нельзя сочетать с JET_bitColumnUserDefinedDefault.

JET_bitColumnTTKey

Допустимо только при вызовах JetOpenTable.

JET_bitColumnTTDescending

Допустимо только для вызовов JetOpenTempTable.

JET_bitColumnMultiValued

Столбец может быть многозначным. Столбец с несколькими значениями может иметь ноль, одно или несколько связанных значений. Различные значения в столбце с несколькими значениями идентифицируются числом в элементе itagSequence различных структур, например JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMNJET_ENUMCOLUMNVALUE. Столбцы с несколькими значениями должны быть помечены столбцами; то есть они не могут быть столбцами фиксированной или переменной длины.

JET_bitColumnEscrowUpdate

Указывает, что столбец является столбцом обновления депонирования, который может обновляться одновременно различными сеансами с помощью JetEscrowUpdate и будет иметь согласованность транзакций.

  • Столбец обновления депонирования можно создать только в том случае, если таблица пуста.

  • Для столбца обновления депонирования элемент coltyp должен иметь значение JET_coltypLong.

  • Столбец обновления депонирования должен иметь значение по умолчанию ( то есть cbDefault должно быть положительным).

  • JET_bitColumnEscrowUpdate нельзя сочетать с JET_bitColumnTagged, JET_bitColumnVersion или JET_bitColumnAutoincrement.

JET_bitColumnUnversioned

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

JET_bitColumnMaybeNull

Зарезервировано для последующего использования.

JET_bitColumnMaybeNull нельзя сочетать с JET_bitColumnUserDefinedDefault.

JET_bitColumnFinalize

Не используйте. Вместо этого используйте JET_bitColumnDeleteOnZero.

Столбец можно завершить. Столбец, который можно завершить, — это столбец обновления депонирования, который приводит к удалению строки, когда столбец достигает нуля. В будущих версиях вместо этого может вызываться функция обратного вызова (см . JET_CALLBACK). Столбец, который можно завершить, должен быть столбцом обновления депонирования. JET_bitColumnFinalize нельзя сочетать с JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

Значение по умолчанию для столбца будет предоставлено функцией обратного вызова. См . JET_CALLBACK. Столбец, имеющий определяемое пользователем значение по умолчанию, должен быть столбцом с тегами. Если указан JET_bitColumnUserDefinedDefault, pvDefault должен указывать на структуру JET_USERDEFINEDDEFAULT , а для параметра cbDefault должно быть задано значение sizeof( JET_USERDEFINEDDEFAULT ).

JET_bitColumnUserDefinedDefault нельзя объединять с JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero или JET_bitColumnMaybeNull.

JET_bitColumnDeleteOnZero

Столбец является столбцом депонирования обновления, и когда он достигнет нуля, запись будет удалена. Для удаления столбцов с нулевым значением часто используется поле счетчика ссылок. Когда количество ссылок падает до нуля, запись удаляется. Столбец delete-on-zero должен быть столбцом обновления депонирования.

JET_bitColumnDeleteOnZero заменяет JET_bitColumnFinalize.

JET_bitColumnDeleteOnZero нельзя объединять с JET_bitColumnFinalize или JET_bitColumnUserDefinedDefault, а также использовать с определяемыми пользователем столбцами по умолчанию.

szBaseTableName

Таблица, от которой текущая таблица наследует DDL.

szBaseColumnName

Имя столбца в таблице шаблонов.

Комментарии

JET_COLUMNBASE содержит те же сведения, что и JET_COLUMNDEF, но добавляет строковые поля для описания базовой таблицы (если использовался иерархический DDL).

Требования

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

Клиент

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

Сервер

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

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

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

Юникод

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

См. также:

JET_CALLBACK
JET_COLTYP
JET_COLUMNDEF
JET_COLUMNID
JET_GRBIT
JET_SESID
JET_TABLEID
JET_USERDEFINEDDEFAULT
JetGetColumnInfo
JetGetTableColumnInfo
JetRenameColumn