Función JetSetIndexRange
Se aplica a: Windows | Windows Server
Función JetSetIndexRange
La función JetSetIndexRange limita temporalmente el conjunto de entradas de índice que el cursor puede recorrer mediante JetMove a los que comienzan desde la entrada de índice actual y terminan en la entrada de índice que coincide con los criterios de búsqueda especificados por la clave de búsqueda en ese cursor y los criterios enlazados especificados. Una clave de búsqueda debe haberse construido previamente mediante JetMakeKey.
JET_ERR JET_API JetSetIndexRange(
__in JET_SESID sesid,
__in JET_TABLEID tableidSrc,
__in JET_GRBIT grbit
);
Parámetros
sesid
Sesión que se va a usar para esta llamada.
tableidSrc
Cursor que se va a usar para esta llamada.
grbit
Un grupo de bits que contienen las opciones que se usarán para esta llamada, que incluyen cero o más de lo siguiente:
Valor |
Significado |
---|---|
JET_bitRangeInclusive |
Esta presencia o ausencia de esta opción indica los criterios de límite del intervalo de índices. Cuando está presente, esta opción indica que el límite del intervalo de índices es inclusivo. Cuando está ausente, esta opción indica que el límite del intervalo de índices es exclusivo. Cuando el límite del intervalo de índice es inclusivo, todas las entradas de índice que coincidan exactamente con los criterios de búsqueda se incluyen en el intervalo. |
JET_bitRangeInstantDuration |
Esta opción solicita que el intervalo de índices se quite tan pronto como se haya establecido. Todos los demás aspectos de la operación permanecen sin cambios. Esto es útil para probar la existencia de entradas de índice que coincidan con los criterios de búsqueda. |
JET_bitRangeRemove |
Esta opción solicita que se cancele un intervalo de índices existente en el cursor. Una vez cancelado el intervalo de índice, será posible moverse más allá del final del intervalo de índice mediante JetMove. Si aún no hay ningún intervalo de índice en vigor, JetSetIndexRange producirá un error con JET_errInvalidOperation. Cuando se especifica esta opción, se omiten todas las demás opciones. |
JET_bitRangeUpperLimit |
Si se usa esta opción, la clave de búsqueda del cursor representa los criterios de búsqueda de la entrada de índice más cercana al final del índice que coincidirá con el intervalo de índice. El intervalo de índice se establecerá entre la posición actual del cursor y esta entrada de índice para que todas las coincidencias se puedan encontrar caminando hacia delante en el índice mediante JetMove con JET_MoveNext o un desplazamiento positivo. No es significativo usar esta opción con una clave de búsqueda construida mediante JetMakeKey mediante una opción de carácter comodín destinada a buscar entradas de índice más cercanas al principio del índice. Si se omite esta opción, la clave de búsqueda del cursor representa los criterios de búsqueda de la entrada de índice más cercana al inicio del índice que coincidirá con el intervalo de índice. El intervalo de índice se establecerá entre la posición actual del cursor y esta entrada de índice para que se puedan encontrar todas las coincidencias caminando hacia atrás en el índice mediante JetMove con JET_MovePrevious o un desplazamiento negativo. No es significativo omitir esta opción con una clave de búsqueda construida mediante JetMakeKey mediante una opción de carácter comodín destinada a buscar entradas de índice más cercanas al final del índice. |
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. Para JetSetIndexRange, esto significa que se canceló un intervalo de índices existente o que hay al menos una entrada de índice dentro del intervalo de índice. |
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_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. Windows XP solo devolverá este error y versiones posteriores. |
JET_errInvalidOperation |
JetSetIndexRange devolverá este error cuando se haya especificado JET_bitRangeRemove y no haya ningún intervalo de índice en vigor. |
JET_errKeyNotMade |
No hay ninguna clave de búsqueda actual para el cursor. JetSetIndexRange requiere que el cursor tenga una clave de búsqueda válida porque la usará para los criterios de búsqueda usados para buscar entradas de índice. |
JET_errNoCurrentIndex |
No hay ningún índice actual para el cursor. Esto ocurrirá para JetSetIndexRange si el cursor está en el índice agrupado de una tabla, no se ha definido un índice principal. No se admite el establecimiento de un intervalo de índices en este tipo de índice. |
JET_errNoCurrentRecord |
JetSetIndexRange devolverá este error para indicar que no hay entradas de índice dentro del intervalo de índices. |
JET_errNotInitialized |
No es posible completar la operación porque la instancia asociada a la sesión aún no se ha inicializado. |
JET_errRestoreInProgress |
No es posible completar la operación porque hay una operación de restauración 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. Windows XP solo devolverá este error y versiones posteriores. |
JET_errTermInProgress |
No es posible completar la operación porque se está cerrando la instancia asociada a la sesión. |
Si se especifica correctamente JET_bitRangeRemove, se cancela el intervalo de índices que está actualmente en vigor. Si no se especifica JET_bitRangeRemove y JET_bitRangeInstantDuration se especifica, no hay ningún intervalo de índice en vigor. Si no se especifica ni JET_bitRangeRemove ni JET_bitRangeInstantDuration, se aplicará un nuevo intervalo de índices. Este intervalo de índices limitará temporalmente el conjunto de entradas de índice que el cursor puede recorrer mediante JetMove a los que comienzan desde la entrada de índice actual y terminan en la entrada de índice que coincida con los criterios de búsqueda. La posición del cursor permanecerá sin cambios. Si se ha construido una clave de búsqueda para el cursor, esa clave de búsqueda se eliminará. No se producirá ningún cambio en el estado de la base de datos.
Si no se devuelve JET_errNoCurrentRecord, no se devuelve ningún intervalo de índice. Si se devuelve JET_errNoCurrentRecord, se aplica un nuevo intervalo de índices. Este intervalo de índices limitará temporalmente el conjunto de entradas de índice que el cursor puede recorrer mediante JetMove a los que comienzan desde la entrada de índice actual y terminan en la entrada de índice que coincida con los criterios de búsqueda. La posición del cursor permanecerá sin cambios. Si se devolvió JET_errNoCurrentRecord y se ha construido una clave de búsqueda para el cursor, se eliminará esa clave de búsqueda. No se producirá ningún cambio en el estado de la base de datos.
Comentarios
Un intervalo de índices es volátil y se cancelará automáticamente si se realiza alguna navegación distinta de JetMove en el cursor.
Los intervalos de índice solo funcionan en una dirección. Si se establece un límite superior, solo se evitará el movimiento hacia delante mediante JetMove con JET_MoveNext o se evitará un desplazamiento positivo una vez alcanzado el final del intervalo de índice. Todavía es posible dejar el rango de índice en este caso usando JetMove con JET_MovePrevious o un desplazamiento negativo. Se produce una situación análoga para un límite inferior.
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. |
Consulte también
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetMove
JetSetIndexRange
JetStopService