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


Структура JET_COLUMNDEF

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

Структура JET_COLUMNDEF

Структура JET_COLUMNDEF определяет данные, которые могут храниться в столбце.

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wCollate;
      unsigned long cbMax;
      JET_GRBIT grbit;
    } JET_COLUMNDEF;

Элементы

cbStruct

Размер структуры в байтах. Ему необходимо задать значение sizeof( JET_COLUMNDEF).

columnid

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

coltyp

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

wCountry

Зарезервировано. Параметру wCountry необходимо задать значение 0 (ноль).

Langid

Является устаревшей. Значение langid должно иметь значение 0 (ноль).

cp

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

wCollate

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

cbMax

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

grbit

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

Значение

Значение

JET_bitColumnFixed

Столбец будет исправлен. Он всегда будет использовать один и тот же объем пространства в строке, независимо от объема данных, хранящихся в столбце. JET_bitColumnFixed нельзя использовать с JET_bitColumnTagged. Этот бит нельзя использовать с длинными значениями ( то есть JET_coltypLongText и JET_coltypLongBinary).

JET_bitColumnTagged

Столбец будет помечен тегом . Помеченные столбцы не занимают места в базе данных, если они не содержат данных. Этот бит нельзя использовать с JET_bitColumnFixed.

JET_bitColumnNotNULL

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

JET_bitColumnVersion

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

Этот бит можно применить только к JET_coltypLong столбцам. Этот бит нельзя использовать с JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate или JET_bitColumnTagged.

JET_bitColumnAutoincrement

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

Windows 2000: В Windows 2000 этот бит можно использовать только для столбцов типа JET_coltypLong.

JET_bitColumnUpdatable

Этот бит действителен только при вызовах JetGetColumnInfo.

JET_bitColumnTTKey

Этот бит действителен только при вызовах JetOpenTable.

JET_bitColumnTTDescending

Этот бит действителен только при вызовах JetOpenTempTable.

JET_bitColumnMultiValued

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

JET_bitColumnEscrowUpdate

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

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

  • Столбец обновления депонирования должен иметь тип JET_coltypLong.

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

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

JET_bitColumnUnversioned

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

JET_bitColumnMaybeNull

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

JET_bitColumnFinalize

Используйте JET_bitColumnDeleteOnZero вместо JET_bitColumnFinalize. JET_bitColumnFinalize, что столбец можно завершить. Если столбец, который можно завершить, имеет столбец обновления условного депонирования, который достигает нуля, строка будет удалена. В будущих версиях вместо этого может вызываться функция обратного вызова (дополнительные сведения см. в разделе 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

Столбец является столбцом обновления условного депонирования, и когда он достигнет нуля, запись будет удалена. Обычно столбец, который можно завершить, — использовать его в качестве поля счетчика ссылок, а когда поле достигает нуля, запись удаляется. JET_bitColumnDeleteOnZero связана с JET_bitColumnFinalize. Столбец Delete-on-zero должен быть столбцом обновления депонирования. JET_bitColumnDeleteOnZero нельзя использовать с JET_bitColumnFinalize. JET_bitColumnDeleteOnZero нельзя использовать с определяемыми пользователем столбцами по умолчанию.

Требования

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

Клиент

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

Сервер

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

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

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

См. также:

JET_CALLBACK
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNID
JET_GRBIT
JET_USERDEFINEDDEFAULT
JetAddColumn
JetEscrowUpdate
JetGetTableColumnInfo
JetOpenTempTable
JetOpenTempTable2
JetOpenTempTable3
JetRenameColumn