Función JetCreateTableColumnIndex
Se aplica a: Windows | Windows Server
La función JetCreateTableColumnIndex crea una tabla en una base de datos ESE con un conjunto inicial de índices y un conjunto inicial de columnas de una matriz de estructuras de JET_TABLECREATE . El nombre JetCreateTableColumnIndex procede del orden de creación de los objetos. En primer lugar, crea una tabla, columnas y, después, se indexa por último.
JET_ERR JET_API JetCreateTableColumnIndex(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE* ptablecreate
);
sesid
Contexto de sesión de base de datos que se va a usar para la llamada API.
dbid
Identificador de base de datos que se va a usar para la llamada API.
ptablecreate
Puntero a una estructura JET_TABLECREATE que define la tabla que se va a crear. Consulte JET_TABLECREATE para obtener más información.
Esta función devuelve el JET_ERR tipo de datos con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.
Código devuelto |
Descripción |
---|---|
JET_errSuccess |
La operación se ha completado correctamente. |
JET_errCallbackNotResolved |
No se pudo resolver la función de devolución de llamada. Es posible que no se haya encontrado el archivo DLL o que no se haya encontrado la función en el archivo DLL. Con el registro suficiente habilitado, el registro de eventos proporcionará más detalles. |
JET_errCannotIndex |
Se intentó indizar sobre una columna de actualización de custodia o SLV (tenga en cuenta que las columnas SLV están en desuso). |
JET_errCannotNestDDL |
Si ptablecreate-grbit> especifica JET_bitTableCreateTemplateTable, pero ptablecreate-szTemplateTableName> se establece en NULL. |
JET_errColumnDuplicate |
Ya existe una columna. |
JET_errColumnNotFound |
Se intentó indizar en una columna inexistente. Si se intenta indizar condicionalmente en una columna inexistente, también se puede producir este error. |
JET_errColumnRedundant |
Se intentó agregar una columna redundante. No debe haber más de una columna de creación automática y no más de una columna de versión por tabla. |
JET_errDensityInvalid |
Este error se devolverá si el miembro ulDensity de la estructura de JET_INDEXCREATE está establecido en un número menor que 20 o más de 100. |
JET_errDDLNotInheritable |
Significa que la tabla denominada en el miembro szTemplateTableName de la estructura JET_TABLECREATE no se marcó como una tabla de plantilla (es decir, esa tabla no tenía JET_bitTableCreateTemplateTable establecido). |
JET_errIndexDuplicate |
Se intentó definir dos índices idénticos. |
JET_errIndexHasPrimary |
Se intentó especificar más de un índice principal para una tabla. Una tabla debe tener exactamente un índice principal. Si no se especifica ningún índice principal, el motor de base de datos creará de forma transparente uno. |
JET_errIndexInvalidDef |
Se especificó una definición de índice no válida. Algunas de las posibles razones para recibir este error son:
|
JET_errIndexTuplesInvalidLimits |
Windows XP y versiones posteriores. Se especificó una estructura de JET_TUPLELIMITS y no se admiten sus límites. Vea la sección comentarios de la estructura JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP y versiones posteriores. Un índice de tupla no puede ser único (es decir, el miembro grbit de la estructura de JET_INDEXCREATE no debe tener JET_bitIndexPrimary y JET_bitIndexUnique establecido). |
JET_errIndexTuplesOneColumnOnly |
Windows XP y versiones posteriores. Un índice de tupla solo puede estar sobre una sola columna (es decir, si el miembro grbit de la estructura JET_INDEXCREATE tiene JET_bitIndexTuples establecido y el miembro szKey de la estructura JET_INDEXCREATE especifica más de una columna). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP y versiones posteriores. Un índice de tupla no puede ser un índice principal (es decir, el miembro grbit de la estructura de JET_INDEXCREATE no debe tener JET_bitIndexPrimary y JET_bitIndexTuples establecido). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP y versiones posteriores. Un índice de tupla solo puede estar en una columna text o Unicode. Un intento de indexar otras columnas (como columnas binarias) dará como resultado JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP y versiones posteriores. Un índice de tupla no permite establecer el miembro cbVarSegMac de la estructura JET_INDEXCREATE . |
JET_errInTransaction |
Se intentó crear un índice sin información de versión mientras se encontraba en una transacción. |
JET_errInvalidCodePage |
El miembro cp de la estructura JET_COLUMNCREATE no se estableció en una página de códigos válida. Los únicos valores válidos para las columnas de texto son Inglés (1252) y Unicode (1200). Un valor de 0 significa que se usará el valor predeterminado (inglés, 1252). |
JET_errInvalidColumnType |
El miembro coltyp de la estructura JET_COLUMNCREATE no se estableció en un tipo de columna válido. |
JET_errInvalidCreateIndex |
Algunos de los motivos por los que puede producirse este error:
|
JET_errInvalidgrbit |
Se especificó una combinación no válida de miembros grbit en JET_TABLECREATE o JET_TABLECREATE2. La definición de índice no es válida porque el miembro grbit contiene valores incoherentes. Algunas de las razones posibles son:
|
JET_errInvalidLanguageId |
Se pasó un identificador de configuración regional (LCID) no válido (ya sea a través del miembro lcid de la estructura JET_UNICODEINDEX a la que apunta el miembro pidxunicode en la estructura JET_INDEXCREATE o a través del campo lcid de la estructura JET_INDEXCREATE ). |
JET_errInvalidParameter |
Se ha especificado un parámetro no válido. Algunas de las posibles razones son:
|
JET_errRecordTooBig |
El registro es demasiado grande. La suma del miembro cbMax de la estructura JET_COLUMNCREATE para todas las columnas fijas no debe superar un valor determinado. |
JET_errTableDuplicate |
La tabla ya existe. |
JET_errTooManyColumns |
Se intentó agregar demasiadas columnas a la tabla. Una tabla no puede tener más de JET_ccolFixedMost columnas fijas, más de JET_ccolVarMost columnas de longitud variable y no más de JET_ccolTaggedMost columnas etiquetadas. |
JET_errUnicodeTranslationFail |
Error al intentar normalizar una columna Unicode. Esto puede deberse a la ejecución de recursos del sistema. |
Llamar a JetCreateTableColumnIndex es idéntico a llamar a JetCreateTableColumnIndex2, con cada campo de la estructura JET_TABLECREATE2 que contiene el valor del campo correspondiente de JET_TABLECREATE, con las siguientes excepciones:
JET_TABLECREATE2.cbStruct establecido en sizeof( JET_TABLECREATE2)
JET_TABLECREATE2.szCallback establecido en NULL
JET_TABLECREATE2.cbtyp establecido en 0
Consulte JetCreateTableColumnIndex2 para obtener más detalles.
Al igual que JetOpenTable, cuando la aplicación se realiza mediante el tableid devuelto, normalmente debe cerrarse con JetCloseTable.
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. |
Library |
Use ESENT.lib. |
Archivo DLL |
Requiere ESENT.dll. |
Unicode |
Se implementa como JetCreateTableColumnIndexW (Unicode) y JetCreateTableColumnIndexA (ANSI). |
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2