Site icon EfmSoft

¿Qué significa el código HRESULT 0x80040E42 (DB_E_BADRECORDNUM)?

 
Anterior Siguiente
DB_E_NOLOCALE DB_E_BOOKMARKSKIPPED

DB_E_BADRECORDNUM

Qué significa DB_E_BADRECORDNUM

DB_E_BADRECORDNUM corresponde al HRESULT 0x80040E42. La descripción de Windows/OLE DB es: «El número de registro no es válido.».

Para aislar la causa, empieza por precondiciones del método OLE DB y validez del identificador, flag u objeto entregado por el consumidor. La condición específica es que la condición documentada es «El número de registro no es válido.»; verifica qué argumento, objeto o output de esa llamada hace que sea cierta.

Qué comprobar

  • Prueba directamente esta hipótesis: la condición documentada es «El número de registro no es válido.»; verifica qué argumento, objeto o output de esa llamada hace que sea cierta.

Índice dentro de IErrorRecords

Cuando el HRESULT procede de IErrorRecords, el “record number” es la posición dentro del objeto de errores capturado, no un número de fila de la base de datos. Llama a GetRecordCount y enumera índices desde cero hasta count-1. Un bucle de 1 a count inclusive falla precisamente al solicitar la última posición inexistente.

Retén además el objeto de errores antes de hacer otra llamada COM. Si el thread error object se reemplaza entre GetRecordCount y la lectura, el índice puede aplicarse a una colección distinta y el diagnóstico será engañoso.

Referencias técnicas


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

Exit mobile version