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)
-   -   ayuda con maestro detalle (https://www.clubdelphi.com/foros/showthread.php?t=48256)

Crashthebig 19-09-2007 19:55:29

ayuda con maestro detalle
 
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:
Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 14:00:58.

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