¿Qué significa el código HRESULT 0xC8000516 (hrTableLocked)?

 
Anterior Siguiente
hrDatabaseLocked hrTableDuplicate

hrTableLocked

Condición de ESE: hrTableLocked

hrTableLocked indica que la tabla mantiene un lock incompatible con la operación solicitada. El valor publicado es 0xC8000516; la condición JET correspondiente es JET_errTableLocked.

No es equivalente a hrTableInUse: ese valor indica que cursores u operaciones abiertas impiden un cambio exclusivo sobre la tabla. También se distingue de hrTableNotEmpty, donde la operación estructural exige una tabla vacía, pero ya existen filas.

Comprobación dirigida

  • Registra la primera llamada donde se cumple la condición concreta: la tabla mantiene un lock incompatible con la operación solicitada.
  • Conserva el contexto de tabla, cursores abiertos y cambios estructurales del schema; para esta página las APIs/estructuras observadas en la referencia incluyen JET_TABLEID, JetOpenTable, JetCreateTableColumnIndex, JetDeleteTable.
  • Antes del retry, corrige la definición o la posición del cursor con una migración/transacción controlada, sin alterar schema a ciegas.

La aceptación de la corrección consiste en repetir la misma API con el mismo tipo de objeto y comprobar que hrTableLocked ya no aparece, sin perder el estado válido del cursor, archivo o backup.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.