Compartir a través de


Función JetDupCursor

Se aplica a: Windows | Windows Server

Función JetDupCursor

La función JetDupCursor duplica un cursor abierto y devuelve un identificador al cursor duplicado. Si el cursor duplicado era un cursor de solo lectura, el cursor duplicado también es un cursor de solo lectura. Cualquier estado relacionado con la construcción de una clave de búsqueda o la actualización de un registro no se copia en el cursor duplicado. Además, la ubicación del cursor original no se duplica en el cursor duplicado. El cursor duplicado siempre se abre en el índice agrupado y su ubicación siempre está en la primera fila de la tabla.

    JET_ERR JET_API JetDupCursor(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_TABLEID* ptableid,
      __in          JET_GRBIT grbit
    );

Parámetros

sesid

La sesión que se va a usar para esta llamada.

tableid

Cursor que se va a usar para esta llamada.

ptableid

Puntero al tableid.

grbit

Reservado para uso futuro.

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_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. Este error solo lo devolverá Windows XP 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_errOutOfCursors

No existen recursos de cursor disponibles.

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, ptableid se establece en un cursor duplicado.

Si se produce un error, no se realizan cambios. El estado del tableid no cambia.

Observaciones

El cursor duplicado no tiene copiado todo el estado del cursor. La ubicación del cursor duplicado, incluido el índice actual, suele ser diferente del cursor especificado. El cursor duplicado siempre se devuelve en el índice agrupado y en la primera fila de la tabla. Si la tabla está vacía, el cursor duplicado no está en ninguna fila.

Las tablas abiertas con JetDupCursor normalmente deben cerrarse con JetCloseTable. La excepción a esta regla se produce cuando se llama a JetDupCursor en una transacción y la transacción se revierte (con JetRollback). Al revertir una transacción, el cursor se cierra automáticamente. En este caso, es un error cerrar la tabla con JetCloseTable.

El número de tablas que se pueden abrir simultáneamente se ve afectada directamente por JET_paramMaxOpenTables. Consulte Parámetros del sistema para obtener más información.

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_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
Parámetros del sistema