Función JetDelete
Se aplica a: Windows | Windows Server
Función JetDelete
La función JetDelete elimina el registro actual de una tabla de base de datos.
JET_ERR JET_API JetDelete(
__in JET_SESID sesid,
__in JET_TABLEID tableid
);
Parámetros
sesid
Contexto de sesión de base de datos que se usará para la llamada API.
tableid
Cursor en una tabla de base de datos. Se eliminará la fila actual.
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_errCallbackFailed |
Error en la función de devolución de llamada de alguna manera. Por ejemplo, las infracciones de acceso en las funciones de devolución de llamada se detectan y traducen en JET_errCallbackFailed. Windows XP solo devolverá este error y versiones posteriores. |
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_errIllegalOperation |
El cursor especificado por tableid no admite la eliminación. Consulte la sección Comentarios. |
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_errNoCurrentRecord |
El cursor especificado por tableid no está en un registro. |
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_errPermissionDenied |
El motor de base de datos no tiene permisos suficientes para eliminar el registro. Esto puede ocurrir si el archivo de base de datos se abrió con acceso de solo lectura. |
JET_errRollbackError |
Existe un búfer de actualización (vea JetPrepareUpdate), pero no todos los cambios realizados en columnas de tipo JET_coltypLongText o columnas de tipo JET_coltypLongBinary podrían revertirse. |
JET_errSessionSharingViolation |
No es válido usar la misma sesión de 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_errTransReadOnly |
La transacción es una transacción de solo lectura y no admite eliminaciones. |
JET_errVersionStoreOutOfMemory |
Error en la operación porque no hay suficiente memoria para conservar la información transaccional sobre la actualización. |
JET_errWriteConflict |
Otra sesión ha bloqueado previamente el registro para la actualización. Se producirá un error en la actualización que intentó esta sesión. |
Si se ejecuta correctamente, la moneda se deja justo antes del siguiente registro. Si el registro eliminado fue el último de la tabla, la moneda se deja al final de la tabla (es decir, después del último registro). Si el registro eliminado era el único registro de la tabla, la moneda se establece en el principio.
Los índices adecuados se actualizan automáticamente.
Si se prepara una actualización (mediante JetPrepareUpdate), se cancelará. Se restablecerá el búfer de actualización.
En caso de error, la moneda permanece sin cambios. Si se prepara una actualización (consulte JetPrepareUpdate), es posible que se restablezca el búfer de actualización.
Comentarios
No todas las tablas admiten la eliminación de filas. Normalmente, una tabla temporal no admite la eliminación de filas. La eliminación de registros se puede habilitar en tablas temporales por muchos motivos, algunos de los cuales son:
JET_bitTTUpdatable se especificó durante la creación.
Las tablas temporales grandes pueden admitir la eliminación si se crearon con JET_bitTTScrollable o JET_bitTTIndexed. El umbral en el que una tabla temporal se convierte en "grande" es actualmente de 64 kilobytes, pero puede cambiarse en futuras versiones.
Windows XP y versiones posteriores. JetDelete puede invocar funciones de devolución de llamada, incluidas JET_cbtypBeforeDelete y JET_cbtypAfterDelete.
Es importante comprender el impacto de realizar un gran número de operaciones de actualización dentro de una sola transacción. El motor de base de datos debe realizar un seguimiento de cada actualización de la base de datos en el almacén de versiones. El almacén de versiones contiene un registro activo de todas las distintas versiones de cada registro o entrada de índice en la base de datos que todas las transacciones activas pueden ver. Estas versiones se usan para admitir el control de simultaneidad con varias versiones en uso por el motor de base de datos para admitir transacciones mediante el aislamiento de instantáneas. Una vez que el motor de base de datos ha agotado los recursos usados para almacenar estas versiones, ya no puede aceptar más cambios hasta que se hayan concluido algunas transacciones para permitir que estos recursos se recuperen. Cuando el motor se encuentra en este estado, se producirá un error en todas las actualizaciones con JET_errVersionStoreOutOfMemory. Los recursos disponibles para el motor de base de datos para almacenar estas versiones se pueden controlar mediante JetSetSystemParameter con JET_paramMaxVerPages y JET_paramGlobalMinVerPages.
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_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Parámetros del sistema