Programación General > C++ Builder
Violación De Clave Ajena Desde Builder
(1/1)
luthien inglorion:
Hola a todos!
A ver si alguien sabe por qué me se me lanza una excepción en mi programa. Estoy haciendo una aplicación en la cual en un determinado momento, quiero poner a null un campo en la tabla y ese campo es clave ajena pero no es un campo obligatorio en la tabla que estoy modificando.
Es decir, yo tengo una tabla "Equipo" donde idEquipo es un smallint y es la clave primaria de esa tabla (y por lo tanto, es not null). Luego tengo una tabla jugador, donde idequipo es foreign key, pero no la declaro como obligatoria en esa tabla.
El hecho es que si quiero quitar a un jugador de un equipo, accedo a la tabla jugadores y hago
--- Código: Text --- ... TablaJugador->Edit(); TablaJugador->FieldValues["IDEQUIPO"]=NULL; TablaJugador->Post(); ...
Builder me lanza una excepción cuando hago el Post diciendo que violo la clave ajena de la tabla jugador... Sin embargo, desde Interbase que es la base de datos que estoy utilizando, puedo acceder a los campos de la tabla y borrar el idequipo del jugador sin ningún problema, dejándolo a null tal y como yo quiero.
Estoy ya tirándome de los pelos, porque llevo liada con este problema no sé ya cuanto tiempo y no se me ocurre ninguna manera de solucionarlo. Si me pudieses ayudar estaría enormemente agradecida
Gracias por vuestra atención
QliX=D!:
Si violaste las foreign keys es por que estas borrando en la tabla incorrecta, es en la otra tabla en la que tenes que borrar el valor.
Recomendacion: no uses claves foraneas con valores nulos, traen muchso problema y degradacion de la performance en las consultas.
Navegación
Ir a la versión completa