| Anterior | Siguiente |
| hrUpdateNotPrepared | hrTooManySorts |
hrerrDataHasChanged
Contexto del código: hrerrDataHasChanged
hrerrDataHasChanged indica que el estado optimista del cursor ya no coincide con la versión del registro que esperaba la operación. El valor publicado es 0xC800064B; la condición JET correspondiente es JET_errDataHasChanged.
No es equivalente a hrWriteConflict: ese valor indica que otra sesión mantiene un write lock incompatible sobre el registro o página objetivo. También se distingue de hrInTransaction, donde se invocó una operación que exige transaction level cero mientras la sesión tiene una transacción activa.
Validación antes del retry
- Registra la primera llamada donde se cumple la condición concreta: el estado optimista del cursor ya no coincide con la versión del registro que esperaba la operación.
- 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
JET_SESID,JetBeginSession,JetBeginTransaction,JetCommitTransaction,JetRollback. - 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 hrerrDataHasChanged 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.