| 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.
