Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Borrar lineas detalle al borrar registro maestro (https://www.clubdelphi.com/foros/showthread.php?t=29020)

akinom38 10-01-2006 15:31:33

Borrar lineas detalle al borrar registro maestro
 
Hola!

Estoy haciendo una aplicación con Delphi y usando Paradox como base de datos. Me preguntaba si alguien sabe si hay alguna propiedad con la que al borrar un registro de una tabla maestra, se borren también todos los registros relacionados de la tabla detalle.

un saludo, gracias por adelantado.

Bicho 10-01-2006 16:23:50

Hola bienvenido al club, te recomiendo una lectura de la Guia de Estilos que la puedes encontrar en mi firma y un repasito por la búsqueda de los foros,

http://www.clubdelphi.com/foros/showthread.php?t=8067
http://www.clubdelphi.com/foros/showthread.php?t=23004

No estoy muy puesto en Paradox :p , pero de todos modos creo que con los enlaces que te he puesto deberías tener suficiente para empezar.

Saludos y bienvenido nuevamente

vtdeleon 10-01-2006 18:31:10

Saludos

Y para extrenar, al final de esta pagina encontraras hilos relacionados;)

akinom38 11-01-2006 10:38:07

Resuelto mediante código
 
Bueno, antes de nada muchas gracias por la ayuda y los consejos.
Finalmente mediante un pequeño ejemplo he resuelto el problemilla.
Lo detallo aquí, por si le sirve a alguien.

Tabla Maestra:Persona
Tabla Detalle: Mascota

En las dos tablas la propiedad CachedUpdate-->True

Para que al borrar una Persona, se borren todas sus mascotas relacionadas:

Implementar los siguientes eventos en la tabla Persona:

BeforeDelete

procedure TMastData.PersonaBeforeDelete(DataSet: TDataSet);
begin
if not Confirm('Borrar Persona y sus mascotas relacionadas?') then
Abort
else
DeleteMascotas;
end;

procedure TMastData.DeleteMascotas;
begin
Mascota.DisableControls; { for faster table traversal }
try
Mascota.First;
while not Mascota.EOF do Mascota.Delete;
finally
Mascota.EnableControls; { always re-enable controls after disabling }
end;
end;

AfterDelete

procedure TMastData.ProductAfterDelete(DataSet: TDataSet);
begin
Product.ApplyUpdates ;
ProductConsumable.ApplyUpdates ;
end;


La franja horaria es GMT +2. Ahora son las 10:17:06.

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