¿Qué significa el código HRESULT 0xC8000644 (hrRecordClusteredChanged)?

 
Anterior Siguiente
hrNoCurrentRecord hrKeyDuplicate

hrRecordClusteredChanged

hrRecordClusteredChanged: qué cambia este hresult

En el flujo legacy ESE/Directory Service, hrRecordClusteredChanged describe que el update intenta cambiar una clustered key de una forma que el motor no puede aplicar in-place.

El valor publicado es 0xC8000644; la condición JET correspondiente es JET_errRecordClusteredChanged. No es equivalente a hrKeyDuplicate: ese valor indica que la clave insertada viola una restricción de unicidad del índice. También se distingue de hrNoCurrentRecord, donde el cursor no está posicionado sobre un registro válido.

Aislamiento de la causa

Registra la primera llamada donde se cumple la condición concreta: el update intenta cambiar una clustered key de una forma que el motor no puede aplicar in-place.

  1. Conserva el contexto de registro actual, clustered key y versión visible por el cursor; para esta página las APIs/estructuras observadas en la referencia incluyen JetMove, JetSeek, JetGetBookmark, JetGotoBookmark, JetPrepareUpdate, JetUpdate.
  2. 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.

Códigos cercanos que conviene separar en logs: hrKeyDuplicate, hrNoCurrentRecord, hrRecordDeleted.

Referencias técnicas


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