Compartir a través de


Estructura de JET_COLUMNBASE

Se aplica a: Windows | Windows Server

Estructura de JET_COLUMNBASE

La estructura JET_COLUMNBASE describe los parámetros de una columna base. Las funciones JetGetColumnInfo y JetGetTableColumnInfo usan la estructura 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;

Miembros

cbStruct

Tamaño de esta estructura, en bytes. Establezca cbStruct en sizeof( JET_COLUMNBASE ).

columnid

Reservado. Establezca columnid en 0 (cero).

coltyp

Tipo de la columna (por ejemplo, texto, binario o numérico). Para obtener más información, consulte JET_COLTYP.

wCountry

Reservado. Establezca en 0 (cero).

langid

Reservado. Establezca en 0 (cero).

cp

Página de códigos de la columna. Los únicos valores válidos para las columnas de texto son Inglés (1252) y Unicode (1200). Un valor de cero significa que se usará el valor predeterminado (inglés, 1252). Si la columna no es una columna de texto, la página de códigos se establece automáticamente en cero.

wFiller

Reservado. Establezca en 0 (cero).

cbMax

Longitud máxima, en bytes, de una columna de longitud variable o la longitud real, en bytes, de una columna de longitud fija.

grbit

Opciones de la columna, incluidos cero o más de los valores siguientes.

Valor

Significado

JET_bitColumnFixed

La columna es fija y ocupa la misma cantidad de espacio en una fila, independientemente de la cantidad de datos que contiene. JET_bitColumnFixed no se puede combinar con JET_bitColumnTagged y no se puede usar cuando el miembro coltyp está establecido en JET_coltypLongText o JET_coltypLongBinary.

JET_bitColumnTagged

La columna se etiqueta y ocupa espacio en la base de datos solo si contiene datos. JET_bitColumnTagged no se pueden combinar con JET_bitColumnFixed, JET_bitColumnVersion o JET_bitColumnEscrowUpdate.

JET_bitColumnNotNULL

La columna no debe establecerse en un valor NULL .

JET_bitColumnNotNULL no se pueden combinar con JET_bitColumnUserDefinedDefault.

JET_bitColumnVersion

La columna es una columna de versión que especifica la versión de la fila. El valor de esta columna comienza en cero y se incrementa automáticamente para cada actualización de la fila.

JET_bitColumnVersion solo se puede usar cuando el miembro coltyp está establecido en JET_coltypLong y no se puede combinar con JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged o JET_bitColumnUserDefinedDefault.

JET_bitColumnAutoincrement

La columna se incrementa automáticamente. El número es un número creciente y se garantiza que es único dentro de una tabla. Sin embargo, es posible que los números no sean secuenciales. Por ejemplo, si se insertan cinco filas en una tabla, la columna incrementada automáticamente podría contener los valores { 1, 2, 6, 7, 8 }.

JET_bitColumnAutoincrement solo se puede usar cuando el miembro coltyp está establecido en JET_coltypLong o JET_coltypCurrency y no se puede combinar con JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault o JET_bitColumnVersion.

Windows 2000: JET_bitColumnVersion solo se puede usar cuando el miembro coltyp está establecido en JET_coltypLong.

JET_bitColumnUpdatable

Válido solo para llamadas a JetGetColumnInfo. JET_bitColumnUpdatable no se pueden combinar con JET_bitColumnUserDefinedDefault.

JET_bitColumnTTKey

Válido solo en llamadas a JetOpenTable.

JET_bitColumnTTDescending

Válido solo en llamadas a JetOpenTempTable.

JET_bitColumnMultiValued

La columna puede tener varios valores. Una columna con varios valores puede tener cero, uno o más valores asociados. Los distintos valores de una columna multivalor se identifican mediante un número en el miembro itagSequence de varias estructuras, por ejemplo, JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Las columnas con varios valores deben etiquetarse; es decir, es posible que no sean columnas de longitud fija o de longitud variable.

JET_bitColumnEscrowUpdate

Especifica que una columna es una columna de actualización de custodia que se puede actualizar simultáneamente mediante sesiones diferentes con JetEscrowUpdate y tendrá coherencia transaccional.

  • Una columna de actualización de custodia solo se puede crear cuando la tabla está vacía.

  • Para una columna de actualización de custodia, el miembro coltyp debe establecerse en JET_coltypLong.

  • Una columna de actualización de custodia debe tener un valor predeterminado (es decir , cbDefault debe ser positivo).

  • JET_bitColumnEscrowUpdate no se pueden combinar con JET_bitColumnTagged, JET_bitColumnVersion o JET_bitColumnAutoincrement.

JET_bitColumnUnversioned

La columna se crea sin un número de versión. Esto significa que se producirá un error en otras transacciones que intenten agregar una columna con el mismo nombre. JET_bitColumnUnversioned solo se usa con JetAddColumn. No se puede usar dentro de una transacción.

JET_bitColumnMaybeNull

Reservado para uso futuro.

JET_bitColumnMaybeNull no se puede combinar con JET_bitColumnUserDefinedDefault.

JET_bitColumnFinalize

No debe usarse. Use JET_bitColumnDeleteOnZero en su lugar.

La columna se puede finalizar. Una columna que se puede finalizar es una columna de actualización de custodia que hace que la fila se elimine cuando la columna alcance cero. En su lugar, las versiones futuras pueden invocar una función de devolución de llamada (consulte JET_CALLBACK). Una columna que se puede finalizar debe ser una columna de actualización de custodia. JET_bitColumnFinalize no se pueden combinar con JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

La función de devolución de llamada proporcionará el valor predeterminado de una columna. Consulte JET_CALLBACK. Una columna que tenga un valor predeterminado definido por el usuario debe ser una columna etiquetada. Si se especifica JET_bitColumnUserDefinedDefault , el pvDefault debe apuntar a una estructura de JET_USERDEFINEDDEFAULT y cbDefault debe establecerse en sizeof( JET_USERDEFINEDDEFAULT ).

JET_bitColumnUserDefinedDefault no se puede combinar con JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero o JET_bitColumnMaybeNull.

JET_bitColumnDeleteOnZero

La columna es una columna de actualización de custodia y, cuando alcanza cero, se eliminará el registro. Un uso común de las columnas delete-on-zero es como campos de recuento de referencias. Cuando el número de referencias se encuentra en cero, se elimina el registro. Una columna delete-on-zero debe ser una columna de actualización de custodia.

JET_bitColumnDeleteOnZero reemplaza JET_bitColumnFinalize.

JET_bitColumnDeleteOnZero no se puede combinar con JET_bitColumnFinalize o JET_bitColumnUserDefinedDefault, y no se puede usar con columnas predeterminadas definidas por el usuario.

szBaseTableName

Tabla de la que la tabla actual hereda su DDL.

szBaseColumnName

Nombre de la columna de la tabla de plantilla.

Comentarios

JET_COLUMNBASE contiene gran parte de la misma información que JET_COLUMNDEF, pero agrega campos de cadena para describir la tabla base (si se usó un DDL jerárquico).

Requisitos

Requisito Value

Cliente

Requiere Windows Vista, Windows XP o Windows 2000 Professional.

Servidor

Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Encabezado

Declarado en Esent.h.

Unicode

Se implementa como JET_COLUMNBASE_W (Unicode) y JET_COLUMNBASE_A (ANSI).

Consulte también

JET_CALLBACK
JET_COLTYP
JET_COLUMNDEF
JET_COLUMNID
JET_GRBIT
JET_SESID
JET_TABLEID
JET_USERDEFINEDDEFAULT
JetGetColumnInfo
JetGetTableColumnInfo
JetRenameColumn