¿Qué significa el código HRESULT 0x80040E78 (DB_E_BADCONSTRAINTFORM)?

 
Anterior Siguiente
DB_E_BADCONSTRAINTTYPE DB_E_BADDEFERRABILITY

DB_E_BADCONSTRAINTFORM

Qué significa DB_E_BADCONSTRAINTFORM

DB_E_BADCONSTRAINTFORM corresponde al HRESULT 0x80040E78. La descripción de Windows/OLE DB es: «ConstraintType no es DBCONSTRAINTTYPE_FOREIGNKEY y cForeignKeyColumns no es cero.».

El provider está informando de una condición concreta de objetos de esquema OLE DB: tablas, columnas, índices, constraints y relaciones de dependencia: la condición documentada es «ConstraintType no es DBCONSTRAINTTYPE_FOREIGNKEY y cForeignKeyColumns no es cero.»; 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 «ConstraintType no es DBCONSTRAINTTYPE_FOREIGNKEY y cForeignKeyColumns no es cero.»; verifica qué argumento, objeto o output de esa llamada hace que sea cierta.

Forma de constraint que hay que validar

La estructura contiene campos que solo tienen significado para determinados DBCONSTRAINTTYPE. Si el tipo no es DBCONSTRAINTTYPE_FOREIGNKEY, un cForeignKeyColumns distinto de cero hace que la forma sea incoherente aunque los identificadores sean válidos. Revisa también que los arrays asociados coincidan con los contadores que declara la estructura.

Evita reciclar una estructura usada antes para una foreign key sin reinicializarla. Construye cada constraint desde cero según su tipo y valida los campos permitidos antes de enviarlo al provider.

Referencias técnicas


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