Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Borrar registros de tablas relacionadas

Estas en el tema de Borrar registros de tablas relacionadas en el foro de Oracle en Foros del Web. Buenas, tengo un problemilla. Estoy usando el Oracle8i y Forms 6i. Pues bien, me he creado un formulario para mantenimiento de hoteles (con sus botones ...
  #1 (permalink)  
Antiguo 22/10/2006, 03:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Borrar registros de tablas relacionadas

Buenas, tengo un problemilla. Estoy usando el Oracle8i y Forms 6i. Pues bien, me he creado un formulario para mantenimiento de hoteles (con sus botones Insertar,consultar, actualizar y borrar). Pues bien, en el boton de borrar hotel, he puesto el siguiente codigo para que me salte una alerta y luego borre el registro.

Código:
DECLARE
     alerta number;
BEGIN
     alerta:=show_alert('alerta_borrar');
   if alerta=alert_button1 then
        delete record;
        commit;
   end if;
END;
El problema está en que no se borra el resgistro porque hace referencia a otra tabla HABITACION que tambien tiene como clave primaria el ID_HOTEL y a parte el NUMERO_HABITACION. Como puedo solucionar esto? MUCHAS GRACIAS.
  #2 (permalink)  
Antiguo 22/10/2006, 08:58
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
podrias mandar las tablas para ver tu problemas con mas info
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #3 (permalink)  
Antiguo 23/10/2006, 01:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
La tablas son las siguientes:

Cita:
create table hotel
(
id_hotel varchar2(4),
nombre_hotel varchar2(30),
categoria number(1),
ciudad varchar2(15)
);

alter table hotel add constraint id_hotel_pk primary key(id_hotel);
Cita:
create table habitacion
(
num_habitacion number(6),
habita_id_hotel varchar2(4),
num_camas number(2),
precio number(5,2),
estado varchar2(15)
);



alter table habitacion add constraint num_habitacion_pk primary key(num_habitacion,habita_id_hotel);

alter table habitacion add constraint habita_id_hotel_fk foreign key(habita_id_hotel) references hotel(id_hotel);

Cita:
create table reserva
(
num_reserva varchar2(15),
reser_id_hotel varchar2(4),
cod_habitacion number(6),
cod_cliente varchar2(8),
fecha_inicio date,
fecha_fin date
);
alter table reserva add constraint num_reserva_pk primary key(num_reserva,cod_habitacion,reser_id_hotel);

alter table reserva add constraint cod_habitacion_fk foreign key(cod_habitacion,reser_id_hotel) references habitacion(num_habitacion,habita_id_hotel);
alter table reserva add constraint reserva_cod_cliente_fk foreign key(cod_cliente) references cliente(dni);
A ver si damos con la solucion del problema. Un saludo.
  #4 (permalink)  
Antiguo 23/10/2006, 15:56
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
si no estas utilizando los bloques con origen de las tablas "habitacion" y "reserva" dentro de tu forma, tendras que hacer directamente el "delete from tabla"

si las estas utilizando tienes que generales la relacion para que cuando borres, se borren los detalles tambien
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:12.