Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2004
Avatar de Dantael
Dantael Dantael is offline
Miembro
 
Registrado: nov 2003
Posts: 50
Poder: 21
Dantael Va por buen camino
Unhappy Borrar de 2 tablas, identidad referencial?

Hola! necesito borrar de dos tablas un registro que se encuentra ligado por una matricula, la primera tabla es de alumnos y la segunda de calificaciones hice las tablas en access y tienen identidad referencial, la relación es de uno a muchos, pero al ejecutar el siguiente query en delphi no me borra en ninguna de las tablas aunque las dos condiciones se cumplan y el cursor se pone como sql:

Query1.sql.Clear;
query1.SQL.Add('delete from alumnos where ');
query1.SQL.Add('alumnos.Matricula in (select Matricula from calificacion where calificacion.calificacion=aram1 and calificacion.calificacion<=5)');
query1.ParamByName('param1').AsInteger:=strtoint(edit1.text);
query1.ExecSQL;

La idetidad referencial basta para eliminar los datos de las dos tablas o si alguien me puede decir el query para borrar los registros de las dos tablas se lo agradeceria mucho.
Responder Con Cita
  #2  
Antiguo 21-03-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Bueno primero comentar que te has equivocado no es identidad sino integridad, supongo que te has despistado.

Si en Access declaras la integridad referencial entre las dos tablas y además marcas la opción "Eliminación en Cascada", bastará con eliminar un registro de la tabla maestra y quedarán eliminados todos los correspondientes del detalle, pero sino lo has hecho así,primero tendrás que borrar todos los correspondientes del detalle y finalmente el registro maestro.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 21-03-2004
Avatar de Dantael
Dantael Dantael is offline
Miembro
 
Registrado: nov 2003
Posts: 50
Poder: 21
Dantael Va por buen camino
Talking Gracias

Muchisimas gracias, sigo probando y en sql 2000 server sabe cómo se haria para decirle que elimine en cascada?


Saludos
Toño
Responder Con Cita
  #4  
Antiguo 22-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
si SQL 2000 Server cumple con el estándar SQL, al crear la relación de integridad basta añadir al final la clausula on delete cascade.

Alter table tabla add
foreign key (campos)
references tabla2 (campos)
on delete cascade.

También hay actualizaciones en cascada, que se definen con on update cascade.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:12:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi