Función JetCreateIndex3
Se aplica a: Windows | Windows Server
Función JetCreateIndex3
La función JetCreateIndex3 crea índices sobre los datos de una base de datos ESE, que se pueden usar para localizar datos específicos rápidamente.
Windows 7: JetCreateIndex3 se introduce en el sistema operativo Windows 7.
JET_ERR JET_API JetCreateIndex3(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Parámetros
sesid
Contexto de sesión de base de datos que se va a usar para la llamada API.
tableid
Tabla en la que se creará el índice.
pindexcreate
Matriz de estructuras de JET_INDEXCREATE2 , cada una de las cuales define un índice que se va a crear.
cIndexCreate
Número de elementos de la matriz pindexcreate .
Valor devuelto
Esta función devuelve el tipo de datos JET_ERR 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_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_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_errDensityInvalid |
Este error se devolverá si el miembro ulDensity de la estructura JET_INDEXCREATE2 se establece en un número menor que 20 o mayor que 100. |
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. A continuación se muestran algunos motivos posibles para recibir este error:
|
JET_errIndexTuplesInvalidLimits |
Windows XP y versiones posteriores de Windows. 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 de Windows. Un índice de tupla no puede ser único (grbit no debe tener JET_bitIndexTuples y JET_bitIndexUnique establecido). |
JET_errIndexTuplesOneColumnOnly |
Windows XP y versiones posteriores de Windows. Un índice de tupla solo puede estar sobre una sola columna (es decir, el miembro grbit de la estructura JET_INDEXCREATE2 tiene JET_bitIndexTuples establecido y el miembro szKey de la estructura JET_INDEXCREATE2 especifica más de una columna). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP y versiones posteriores de Windows. Un índice de tupla no puede ser un índice principal (es decir, el miembro grbit de la estructura de JET_INDEXCREATE2 no debe tener JET_bitIndexPrimary y JET_bitIndexTuples establecido). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP y versiones posteriores de Windows. Un índice de tupla solo puede estar en una columna text o Unicode. Un intento de indexar otras columnas (por ejemplo, columnas binarias) dará como resultado JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP y versiones posteriores de Windows. Un índice de tupla no permite establecer el miembro cbVarSegMac de la estructura JET_INDEXCREATE2 . |
JET_errInTransaction |
Se intentó crear un índice sin información de versión mientras se encontraba en una transacción. |
JET_errInvalidgrbit |
La definición de índice no es válida porque el miembro grbit de la estructura JET_INDEXCREATE2 contiene valores incoherentes. Estos son algunos de los motivos posibles:
Al crear varios índices a la vez (es decir, si el parámetro cIndexCreate es mayor que uno), ninguno de los índices puede contener ninguno de los bits siguientes:
|
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 , que el miembro pidxunicode de la estructura JET_INDEXCREATE2 contiene un puntero a o a través del miembro lcid de la estructura JET_INDEXCREATE2 ). |
JET_errInvalidName |
Se especificó un nombre de índice no válido. Consulte JET_INDEXCREATE2 para obtener más detalles. |
JET_errInvalidParameter |
Se pasó un parámetro no válido a la API. Estos son algunos de los motivos por los que se puede devolver este error:
|
JET_errUnicodeTranslationFail |
Error al intentar normalizar una columna Unicode. Esto puede deberse a la ejecución de recursos del sistema. |
JET_errSpaceHintsInvalid |
Un elemento de la estructura de sugerencias de espacio JET no era correcto o accionable. |
Comentarios
El valor devuelto se JET_errSuccess al completar correctamente todos los índices especificados.
JetCreateIndex3 recorre en iteración los índices especificados en pindexcreate y, a veces, se anulará en el primer error. Es posible que no se hayan intentado los índices después del primer índice con un error, aunque el miembro err de la estructura de JET_INDEXCREATE2 contenga JET_errSuccess.
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. |
Library |
Use ESENT.lib. |
Archivo DLL |
Requiere ESENT.dll. |
Unicode |
Se implementa como JetCreateIndex3W (Unicode) y JetCreateIndex3A (ANSI). |
Consulte también
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS