Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Borrar detalle en relación Master/Detail con Paradox (https://www.clubdelphi.com/foros/showthread.php?t=66544)

agustibaldo 25-02-2010 16:13:12

Borrar detalle en relación Master/Detail con Paradox
 
Gente de ClubDelphi, les consulto porque tengo una duda.

Necesito eliminar el detalle cuando hago una eliminación en la cabecera de mi TTable. Tengo las dos tablas enganchas a través de un MasterSource, etc
Hasta hace unos instantes, creía que esto era posible pero descubrí que cuando elimino la cabecera, no me elimina los registros asociados a esta en el detail.

Espero que me puedan dar una mano.

Muchas gracias.

Caro 26-02-2010 03:28:58

Hola agustibaldo, para borrar el detalle de tu TTable, debes recorrer y hacer el delete de cada registro.

Como es maestro detalle, al recorrer tu Table solo va a tomar los registros actuales de tu detalle y no toda tu tabla, pero primero has el delete del detalle y luego del maestro.

Código Delphi [-]
 TableDetalle.First;
 While not TableDetalle.Eof do
  begin
   TableDetalle.Delete;
   TableDetalle.Next;
  end;
 TableMaestro.Delete;

Saluditos

marcoszorrilla 26-02-2010 06:45:55

También puedes utilizar Sql.

Código Delphi [-]
Delete From MiTabla Where Clave = xxxxx


Un Saludo.

agustibaldo 26-02-2010 12:09:45

muchisimas gracias a los dos!!! terminé por resolverlo de esa manera pero como les decía antes, estaba convencido que cuando se eliminaba un ítem del maestro automáticamente se eliminaban los ítems del detalle asociado. Creo que voy a tener que repasar nuevamente la Biblia de Delphi 5. ;)

Como siempre, gracias por sus respuestas.

Abrazo.

marcoszorrilla 26-02-2010 14:53:42

Lo que comentas es para los motores que tienen eliminación en cascada y Paradox no lo tiene, por ejemplo Access si lo tiene, pero en este último caso que cito tienes que establecer relaciones entre las tablas, marcar integridad referencia y luego eliminación en cascada....

Un Saludo.

gonza_619 17-08-2010 17:19:05

guardar en variable registro seleccionado del dbgrid
 
hola a ud, bueno mi intencion es tambien eliminar un registro seleccionado del dbgrid de un table y guardarlo en variable para luego compararlo con otros table en los cuales se relaciona y tambien aparece, es decir si existe ese registro seleccionado e otras tablas eliminarlo primero para luego poder eliminarlo de la tabla donde lo seleccione.
probe con esto
Código Delphi [-]
procedure TForm1.Button5Click(Sender: TObject);
var x:integer;
begin
if Dbgrid1.columns.count >0 then
 x := DBGrid1.SelectedField.Asinteger;
while not Table3.EoF do
  begin
  if Table3.FieldByName('curso').AsInteger=x
   then  application.Terminate;
   end;
lo hice como prueba pero no se cierra la aplicacion
ademas el problema es cuando quiero verificar sobre tablas que estan en otros forms podria ser:
WHILE NOT FORMX.TABLE3.EOF DO
nose si estaria bien tambien lo probe y no cierra entonces puede ser que no se este guardando en la variable el registro q selecciono o no esta recorriendo la tabla .
probe tambien
Código Delphi [-]
if Dbgrid1.columns.count >0 then
 x := DBGrid1.SelectedField.Asinteger;
pero nose si esta bien escrito o si falta algo pero tampoco al parecer lo guarda. bueno espero puedan darme una mano gracias desde ya


La franja horaria es GMT +2. Ahora son las 04:06:13.

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