Estructura de JET_COLUMNCREATE
Se aplica a: Windows | Windows Server
Estructura de JET_COLUMNCREATE
La estructura JET_COLUMNCREATE describe una columna que se va a crear en una base de datos.
typedef struct tag_JET_COLUMNCREATE {
unsigned long cbStruct;
tchar* szColumnName;
JET_COLTYP coltyp;
unsigned long cbMax;
JET_GRBIT grbit;
void* pvDefault;
unsigned long cbDefault;
unsigned long cp;
JET_COLUMNID columnid;
JET_ERR err;
} JET_COLUMNCREATE;
Miembros
cbStruct
El tamaño de la estructura en bytes. Este campo debe inicializarse en sizeof( JET_COLUMNCREATE ).
szColumnName
Nombre de la columna que se va a crear. El nombre debe cumplir los siguientes criterios:
- Debe tener menos de JET_cbNameMost caracteres de longitud, sin incluir el valor NULL de terminación.
- Solo debe contener caracteres de los siguientes conjuntos: de 0 a 9, A a Z, a a z y de todos los demás signos de puntuación, excepto el signo de exclamación (!), coma (,), corchete de apertura ([) y corchete de cierre (]), es decir, caracteres ASCII 0x20, 0x22 a través de 0x2d, 0x2f a través de 0x5a, 0x5c, 0x5d a través de 0x7f.
- No puede comenzar con un espacio.
- Debe contener al menos un carácter que no sea de espacio.
coltyp
Tipo de la columna (por ejemplo, texto, binario o numérico). Para obtener más información, consulte JET_COLTYP.
cbMax
Longitud máxima, en bytes, de una columna de longitud variable. Longitud de la columna para columnas de longitud fija.
grbit
Grupo de bits que contienen las opciones de esta estructura y que incluyen cero o más de los valores siguientes.
Value |
Significado |
---|---|
JET_bitColumnFixed |
La columna es fija. Siempre usará la misma cantidad de espacio en una fila, independientemente de la cantidad de datos que se almacenan en la columna. JET_bitColumnFixed no se puede usar con JET_bitColumnTagged. Este bit no se puede usar con valores largos, como JET_coltypLongText y JET_coltypLongBinary. |
JET_bitColumnTagged |
La columna se etiqueta. Las columnas etiquetadas no ocupan ningún espacio en la base de datos si no contienen datos. Este bit no se puede usar con JET_bitColumnFixed. |
JET_bitColumnNotNULL |
La columna nunca debe establecerse en un valor NULL. |
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 el número no sea continuo. Por ejemplo, si se insertan cinco filas en una tabla, la columna de creación automática podría contener los valores { 1, 2, 6, 7, 8 }. Windows 2000: Este bit solo se puede usar en columnas de tipo JET_coltypLong. Windows Server 2003 y versiones posteriores: Este bit solo se puede usar en columnas de tipo JET_coltypLong o JET_coltypCurrency. |
JET_bitColumnUpdatable |
Este bit solo es válido en llamadas a JetGetColumnInfo. |
JET_bitColumnTTKey |
Este bit solo es válido en las llamadas a JetOpenTempTable. |
JET_bitColumnTTDescending |
Este bit solo es válido en las 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 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 como columnas; es decir, no pueden ser columnas de longitud fija o de longitud variable. |
JET_bitColumnEscrowUpdate |
La columna es una columna de actualización de custodia. Una columna de actualización de custodia se puede actualizar simultáneamente mediante diferentes sesiones con JetEscrowUpdate y mantener la coherencia transaccional.
|
JET_bitColumnUnversioned |
La columna se crea sin una versión. Se producirá un error en otras transacciones que intenten agregar una columna con el mismo nombre. Este bit solo es útil con JetAddColumn. No se puede usar dentro de una transacción. |
JET_bitColumnMaybeNull |
Reservado para uso futuro. |
JET_bitColumnFinalize |
Use JET_bitColumnDeleteOnZero en lugar de JET_bitColumnFinalize. JET_bitColumnFinalize especifica que se puede finalizar una columna. Cuando una columna que se puede finalizar tiene una columna de actualización de custodia que alcanza cero, se eliminará la fila. En su lugar, las versiones futuras pueden invocar una función de devolución de llamada. Para obtener más información, consulte JET_CALLBACK. Una columna que se puede finalizar debe ser una columna de actualización de custodia. JET_bitColumnFinalize no se puede usar con JET_bitColumnUserDefinedDefault. |
JET_bitColumnUserDefinedDefault |
La función de devolución de llamada proporciona el valor predeterminado de una columna, JET_CALLBACK. Una columna que tenga un valor predeterminado definido por el usuario debe ser una columna etiquetada. pvDefault debe apuntar a una estructura de JET_USERDEFINEDDEFAULT y cbDefault debe establecerse en sizeof(JET_USERDEFINEDDEFAULT). JET_bitColumnUserDefinedDefault no se puede usar junto con las siguientes constantes:
|
JET_bitColumnDeleteOnZero |
La columna es una columna de actualización de custodia y, cuando alcanza cero, se eliminará el registro. Un uso común para una columna que se puede finalizar es usarlo como un campo de recuento de referencias y cuando el campo alcanza cero el registro se elimina. JET_bitColumnDeleteOnZero está relacionado con JET_bitColumnFinalize. Una columna delete-on-zero debe ser una columna de actualización de custodia. JET_bitColumnDeleteOnZero no se puede usar con JET_bitColumnFinalize. JET_bitColumnDeleteOnZero no se puede usar con columnas predeterminadas definidas por el usuario. |
pvDefault
Apunta a un búfer que será el valor predeterminado de una columna. La longitud del búfer es cbDefault. Si no hay ningún valor predeterminado, pvDefault debe establecerse en NULL y cbDefault debe establecerse en cero. Si grbit tiene JET_bitColumnUserDefinedDefault establecido, pvDefault se interpretará como puntero a una estructura de JET_USERDEFINEDDEFAULT. Los valores predeterminados no pueden ser mayores de 255 bytes. Si un valor predeterminado es mayor que 255 bytes, se truncará silenciosamente.
cbDefault
Tamaño, en bytes, del búfer especificado por pvDefault.
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.
columnid
Si se ejecuta correctamente, el identificador de columna de la columna recién creada se devolverá en este campo. Si se produce un error, el valor no está definido.
err
El campo err contendrá el estado de creación de esta columna. Consulte JetAddColumn para obtener una lista de valores devueltos probables.
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_COLUMNCREATE_W (Unicode) y JET_COLUMNCREATE_A (ANSI). |
Consulte también
JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns