Site icon EfmSoft

¿Qué significa el código HRESULT 0xC800041E (hrNotInTransaction)?

 
Anterior Siguiente
hrNullKeyDisallowed hrTooManyActiveUsers

hrNotInTransaction

Qué cambia este HRESULT

hrNotInTransaction corresponde a la condición “la operación exige una transacción activa, pero la sesión no tiene ningún save point/transacción”.

El valor publicado es 0xC800041E; la condición JET correspondiente es JET_errNotInTransaction.

Objeto que debe conservarse

El diagnóstico se centra en JET_SESID, cursor/JET_TABLEID, transaction level y prepared update. No es equivalente a hrInTransaction: ese valor indica que se invocó una operación que exige transaction level cero mientras la sesión tiene una transacción activa. También se distingue de hrInvalidSesid, donde el JET_SESID no identifica una sesión activa y válida de la instancia.

Aislamiento de la causa

  • Registra la primera llamada donde se cumple la condición concreta: la operación exige una transacción activa, pero la sesión no tiene ningún save point/transacció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 JetBeginTransaction, JET_SESID, JetBeginSession, 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.

Referencias técnicas


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

Exit mobile version