PDA

Ver la Versión Completa : ayuda con maestro detalle


Crashthebig
19-09-2007, 19:55:29
Para esta aplicacion e decidido usar paradox 7 y delphi 7
tengo una tabla llamada datos en la cual se almacenan los datos personales y otra tabla llamada citas en la cual se almacenan los datos de las citas de los pacientes. estas tablas estan vinculadas por dos campos numericos llamados
codigo para la tabla datos.DB, y code para la tabla cita.DB, todo esto funciona de maravilla.
pero la duda es la siguiente:
me gustaria que cuando en la tabla maestro se elimine un registro cuyo campo codigo sea igual a 1, se eliminen todas las citas que esten vinculadas con este campo, es decir todas las citas que su campo code sea igual a 1 :confused:

paldave
19-09-2007, 20:29:21
Primero que nada felicitaciones por la forma clara en que planteaste tu problema, es algo que no se ve muy a menudo.
Para hacer lo que quieres podrías usar el evento BeforeDelete de la tabla Datos y comprobar todos los registros de la tabla Citas, eliminando los que coinciden:
procedure TForm1.DatosBeforeDelete(DataSet: TDataSet);
var cod,f:Integer;
begin
cod:= Datos.FieldByName('CODIGO').AsInteger;
Citas.First; //va al primer registro
while not Citas.Eof do //mientras no se llegue al final de la tabla
begin
if Citas.FieldByName('CODE').AsInteger= cod then //si los campos coinciden
Citas.Delete //borra el registro
else
Citas.Next; //sino pasa al siguiente
end;
end;
Espero te sea de ayuda. Saludos y suerte con tu programa.

Crashthebig
19-09-2007, 20:45:37
muchas gracias paldave eso estuvo de lujo, pocas respuestas son tan buenas y tan rapidas