Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.



Last modified: March 09, 2015

Applies to: Windows | Windows Server

The JET_COLUMNBASE structure describes the parameters of a base column. The JetGetColumnInfo and JetGetTableColumnInfo functions use the JET_COLUMNBASE structure.

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];



The size of this structure, in bytes. Set cbStruct to sizeof( JET_COLUMNBASE ).


Reserved. Set columnid to 0 (zero).


The type of the column (for example, text, binary, or numerical). For more information, see JET_COLTYP.


Reserved. Set to 0 (zero).


Reserved. Set to 0 (zero).


The code page for the column. The only valid values for text columns are English (1252) and Unicode (1200). A value of zero means the default will be used (English, 1252). If the column is not a text column, the code page is automatically set to zero.


Reserved. Set to 0 (zero).


The maximum length, in bytes, of a variable-length column, or the actual length, in bytes, of a fixed-length column.


Options for the column, including zero or more of the following values.




The column is fixed and occupies the same amount of space in a row regardless of how much data it contains. JET_bitColumnFixed cannot be combined with JET_bitColumnTagged, and cannot be used when the coltyp member is set to JET_coltypLongText or JET_coltypLongBinary.


The column is tagged and occupies space in the database only if it contains data. JET_bitColumnTagged cannot be combined with JET_bitColumnFixed, JET_bitColumnVersion, or JET_bitColumnEscrowUpdate.


The column must not be set to a NULL value.

JET_bitColumnNotNULL cannot be combined with JET_bitColumnUserDefinedDefault.


The column is a version column that specifies the version of the row. The value of this column starts at zero and is automatically incremented for each update of the row.

JET_bitColumnVersion can be used only when the coltyp member is set to JET_coltypLong and cannot be combined with JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged, or JET_bitColumnUserDefinedDefault.


The column is automatically incremented. The number is an increasing number, and is guaranteed to be unique within a table. The numbers, however, may not be sequential. For example, if five rows are inserted into a table, the automatically incremented column could contain the values { 1, 2, 6, 7, 8 }.

JET_bitColumnAutoincrement can be used only when the coltyp member is set to JET_coltypLong or JET_coltypCurrency and cannot be combined with JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault, or JET_bitColumnVersion.

Windows 2000:  JET_bitColumnVersion can be used only when the coltyp member is set to JET_coltypLong.


Valid only for calls to JetGetColumnInfo. JET_bitColumnUpdatable cannot be combined with JET_bitColumnUserDefinedDefault.


Valid only on calls to JetOpenTable.


Valid only on calls to JetOpenTempTable.


The column can be multi-valued. A multi-valued column can have zero, one, or more values associated with it. The various values in a multi-valued column are identified by a number in the itagSequence member of various structures, for example, JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Multi-valued columns must be tagged columns; that is, they may not be fixed-length or variable-length columns.


Specifies that a column is an escrow update column that can be updated concurrently by different sessions with JetEscrowUpdate and will have transactional consistency.

  • An escrow update column can be created only when the table is empty.

  • For an escrow update column, the coltyp member must be set to JET_coltypLong.

  • An escrow update column must have a default value (that is cbDefault must be positive).

  • JET_bitColumnEscrowUpdate cannot be combined with JET_bitColumnTagged, JET_bitColumnVersion, or JET_bitColumnAutoincrement.


The column is created without a version number. This means that other transactions attempting to add a column with the same name will fail. JET_bitColumnUnversioned is used only with JetAddColumn. It cannot be used within a transaction.


Reserved for future use.

JET_bitColumnMaybeNull cannot be combined with JET_bitColumnUserDefinedDefault.


Do not use. Use JET_bitColumnDeleteOnZero instead.

The column can be finalized. A column that can be finalized is an escrow update column that causes the row to be deleted when the column reaches zero. Future versions may invoke a callback function instead (See JET_CALLBACK). A column that can be finalized must be an escrow update column. JET_bitColumnFinalize cannot be combined with JET_bitColumnUserDefinedDefault.


The default value for a column will be provided by a callback function. See JET_CALLBACK. A column that has a user-defined default must be a tagged column. If JET_bitColumnUserDefinedDefault is specified, the pvDefault must point to a JET_USERDEFINEDDEFAULT structure, and cbDefault must be set to sizeof( JET_USERDEFINEDDEFAULT ).

JET_bitColumnUserDefinedDefault cannot be combined with JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero, or JET_bitColumnMaybeNull.


The column is an escrow update column and when it reaches zero, the record will be deleted. A common use for delete-on-zero columns is as reference count fields. When the number of references fall to zero, the record is deleted. A delete-on-zero column must be an escrow update column.

JET_bitColumnDeleteOnZero replaces JET_bitColumnFinalize.

JET_bitColumnDeleteOnZero cannot be combined with JET_bitColumnFinalize or JET_bitColumnUserDefinedDefault, and cannot be used with user-defined default columns.


The table from which the current table inherits its DDL.


The name of the column in the template table.


JET_COLUMNBASE contains much of the same information as JET_COLUMNDEF, but it adds string fields to describe the base table (if a hierarchical DDL was used).



Requires Windows Vista, Windows XP, or Windows 2000 Professional.


Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server.


Declared in Esent.h.


Implemented as JET_COLUMNBASE_W (Unicode) and JET_COLUMNBASE_A (ANSI).

See Also

© 2018 Microsoft