Función JetGetCurrentIndex
Se aplica a: Windows | Windows Server
Función JetGetCurrentIndex
La función JetGetCurrentIndex determina el nombre del índice actual de un cursor determinado. Este nombre también se usa para volver a seleccionar posteriormente ese índice como índice actual mediante JetSetCurrentIndex. También se puede usar para detectar las propiedades de ese índice mediante JetGetTableIndexInfo.
JET_ERR JET_API JetGetCurrentIndex(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_PSTR szIndexName,
__in unsigned long cchIndexName
);
Parámetros
sesid
Sesión que se va a usar para esta llamada.
tableid
Cursor que se va a usar para esta llamada.
szIndexName
Búfer de salida que recibe el nombre del índice actual del cursor.
cchIndexName
Tamaño máximo en caracteres del búfer de salida.
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_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_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. |
JET_wrnBufferTruncated |
La operación se completó correctamente, pero el búfer de salida era demasiado pequeño para recibir todo el nombre del índice. El búfer de salida se ha rellenado con tanto nombre de índice como cabría. Si el búfer de salida tiene al menos un carácter de longitud, la cadena de ese búfer de salida finalizará en null. Nota Este error no se devolverá si cchIndexName es cero. Consulte la sección Comentarios para obtener más información. |
Si se ejecuta correctamente, el nombre del índice actual del cursor especificado se devolverá en el búfer de salida. Si se devuelve JET_wrnBufferTruncated, el búfer de salida contendrá tanto el nombre del índice como cabrá en el espacio proporcionado. Si el búfer de salida tiene al menos un carácter de longitud, la cadena devuelta en ese búfer será terminada en null. No se producirá ningún cambio en el estado de la base de datos.
En caso de error, el estado del búfer de salida no estará definido. No se producirá ningún cambio en el estado de la base de datos.
Comentarios
Si no hay ningún índice actual para el cursor, se devolverá una cadena vacía. Esto puede ocurrir cuando el cursor se encuentra en el índice agrupado de la tabla y no se definió ningún índice principal. Este índice se conoce como índice secuencial de la tabla y no tiene ninguna definición. En cualquier caso, al establecer el índice actual en una cadena vacía mediante JetSetCurrentIndex , se seleccionará el índice agrupado, independientemente de la presencia de una definición de índice principal.
Hay un error importante en esta función que está presente en todas las versiones. Si el búfer de salida es demasiado pequeño para recibir todo el nombre del índice y el búfer de salida tiene al menos un carácter de longitud, no se devolverá JET_wrnBufferTruncated. JET_errSuccess se devolverá en su lugar. Para evitar este problema, el búfer de salida siempre debe tener al menos JET_cbNameMost + 1 (65) caracteres de longitud.
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 JetGetCurrentIndexW (Unicode) y JetGetCurrentIndexA (ANSI). |
Consulte también
JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex