Función JetSetCurrentIndex
Se aplica a: Windows | Windows Server
Función JetSetCurrentIndex
La función JetSetCurrentIndex se puede usar para establecer el índice actual de un cursor. El índice actual de un cursor define qué registros de una tabla son visibles para ese cursor y el orden en el que aparecen seleccionando el conjunto de entradas de índice que se van a usar para exponer esos registros.
JET_ERR JET_API JetSetCurrentIndex(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt const tchar* szIndexName
);
Parámetros
sesid
La sesión que se va a usar para esta llamada.
tableid
Cursor que se va a usar para esta llamada.
szIndexName
Nombre del índice que se va a seleccionar para el cursor.
Si este parámetro es NULL o una cadena vacía, se seleccionará el índice agrupado. Si se define un índice principal para la tabla, ese índice se seleccionará porque es el mismo que el índice agrupado. Si no se define ningún índice principal para la tabla, se seleccionará el índice secuencial. El índice secuencial no tiene ninguna definición de índice. Consulte JetCreateIndex para obtener más información.
Si pindexid no es NULL, se omitirá el nombre del índice y su identificador de índice seleccionará el índice.
Valor devuelto
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_errBadItagSequence |
Se selecciona un índice secundario con la opción JET_bitNoMove y no hay ningún valor para la primera columna de clave multivalor en la definición del nuevo índice que corresponde al número de secuencia especificado. |
JET_errClientRequestToStopJetService |
No es posible completar la operación porque toda la actividad de la instancia asociada a la sesión ha dejado de funcionar como resultado de una llamada a JetStopService. |
JET_errInvalidIndexId |
El contenido del identificador de índice no era válido o ha expirado y debe actualizarse. Esto puede ocurrir para JetSetCurrentIndex cuando:
|
JET_errInstanceUnavailable |
No es posible completar la operación porque la instancia asociada a la sesión ha encontrado un error irrecuperable que requiere que se revoque el acceso a todos los datos para proteger la integridad de esos datos. Este error solo lo devolverá Windows XP y versiones posteriores. |
JET_errInvalidName |
Uno de los nombres de objeto especificados no era válido. Todos los nombres de objeto deben cumplir el mismo conjunto de reglas. Estas reglas son:
|
JET_errInvalidParameter |
Uno de los parámetros proporcionados contenía un valor inesperado o contenía un valor que no tenía sentido cuando se combinaba con el valor de otro parámetro. Esto puede ocurrir para JetSetCurrentIndex cuando pindexid no es NULL y pindexid-cbStruct> no tiene el tamaño esperado (Windows XP y versiones anteriores). |
JET_errNoCurrentRecord |
Se selecciona un índice secundario con la opción JET_bitNoMove y no hay ninguna entrada de índice en el nuevo índice que corresponde al registro asociado a la entrada de índice en la posición actual del cursor en el índice anterior. |
JET_errNotInitialized |
No es posible completar la operación porque la instancia asociada a la sesión aún no se ha inicializado. |
JET_errOutOfCursors |
El motor ha agotado su grupo de recursos usados para abrir cursores. El número máximo de cursores que se pueden abrir en cualquier momento se controla mediante JET_paramMaxCursors. Consulte JetSetSystemParameter para obtener más información. Esto puede ocurrir para JetSetCurrentIndex cuando se ha seleccionado un índice secundario y el motor no puede abrir un cursor interno para usar ese índice. |
JET_errRestoreInProgress |
No es posible completar la operación porque una operación de restauración está en curso en la instancia asociada a la sesión. |
JET_errSessionSharingViolation |
No se puede usar la misma sesión para más de un subproceso al mismo tiempo. Este error solo lo devolverá Windows XP y versiones posteriores. |
JET_errTermInProgress |
No es posible completar la operación porque la instancia asociada a la sesión se está cerrando. |
Si se ejecuta correctamente, el índice actual del cursor se establece en el índice solicitado. Ahora se pueden buscar entradas de índice con JetSeek según la definición de índice del índice solicitado. Las entradas de índice también se pueden enumerar con JetMove en el orden especificado por esa definición de índice. La posición actual del cursor se establece en la primera entrada de índice del índice (JET_bitMoveFirst) o en una entrada de índice específica relacionada con la posición actual del cursor en el índice anterior (JET_bitNoMove). No se producirá ningún cambio en el estado de la base de datos.
Si se produce un error, el índice actual y la posición actual del cursor están en un estado indefinido. No se producirá ningún cambio en el estado de la base de datos.
Comentarios
Si la sugerencia de identificador de índice está obsoleta, simplemente se produce un error en la API. En este caso, no hay ninguna reserva en el nombre de texto del índice, como podría esperarse. El autor de la llamada de la API debe realizar manualmente esta reserva.
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 JetSetCurrentIndexW (Unicode) y JetSetCurrentIndexA (ANSI). |
Consulte también
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXID
JetCreateIndex
JetGetCurrentIndex
JetGetIndexInfo
JetGetTableIndexInfo
JetMove
JetSeek
JetSetCurrentIndex
JetSetSystemParameter
JetStopService