¿Qué significa el código HRESULT 0xC8000647 (hrAlreadyPrepared)?

 
Anterior Siguiente
hrKeyDuplicate hrKeyNotMade

hrAlreadyPrepared

Contexto del código: hrAlreadyPrepared

hrAlreadyPrepared indica que el cursor ya tiene un prepared update/copy y recibe otro prepare incompatible. El valor publicado es 0xC8000647; la condición JET correspondiente es JET_errAlreadyPrepared.

No es equivalente a hrUpdateNotPrepared: ese valor indica que una operación JetSetColumn/JetUpdate llegó a un cursor sin el prepared update correspondiente. También se distingue de hrInvalidBookmark, donde el bookmark suministrado no identifica una posición válida para el cursor actual.

Validación antes del retry

  • Registra la primera llamada donde se cumple la condición concreta: el cursor ya tiene un prepared update/copy y recibe otro prepare incompatible.
  • Conserva el contexto de JET_SESID, cursor/JET_TABLEID, transaction level y prepared update; para esta página las APIs/estructuras observadas en la referencia incluyen JetPrepareUpdate, JetMove, JetSeek, JetGetBookmark, JetGotoBookmark, JetUpdate.
  • Antes del retry, reconstruye el estado de sesión/cursor dentro de una secuencia transaction/prepare válida y evita reutilizar IDs obsoletos.

La aceptación de la corrección consiste en repetir la misma API con el mismo tipo de objeto y comprobar que hrAlreadyPrepared 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.