Elimar registros de tabla relacionadas con delete
Publicado por lex (1 intervención) el 08/04/2010 22:29:56
veran, tengo una BD de Acces, en ella tengo tabla1 t tabla 2, en tabla1 tengo un campo llave(id), lo mismo que en tabla2(ID), estas estan enlazadas y funciona bien, enlazo a mi aplicacion con querys, realizo una consulta con query1 y la vacio en DBgrid1, hago una consulta con query2 y la vacio en DBgrid2, ahora la cuestion es que lo que hay en el primer dbgrid son clientes y lo que hay en el dbgrid2 son los pedidos de los clientes, esto funciona pero la cuestion es que deseo que el usuario pueda eliminar clientes, pero como estan relacionadas las tablas oviamente devo eliminar primeros sus pedidos o bien en coaciones el susuairo solo querra borrar solo los pedidos y no asi el cliente, pues vien despues de tanto choro este es mas o menos mi codigo
with datamodule3.Query3 do
begin
close;
sql.Clear;
if Application.MessageBox('Se eliminaran permanentemente el cliente y sus envios, ¿Desea continuar? ','El Paquete',MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
try
begin
sql.Add('delete * from tabla2 where id = :numero2');
datamodule3.Query3.ParamByName('numero2').asstring:=datamodule3.Query2.Fields[0].AsString;
open;
with datamodule3.query1 do
begin
close;
sql.Clear;
sql.Add('delete from tabla1 where id =:numero1');
datamodule3.Query3.ParamByName('numero1').asstring:=datamodule3.Query1.Fields[0].AsString;
open;
end
end
except
begin
showmessage('Imposible eliminar el cliente o sus envios');
end;
end;
end;
end;
el error que me da es "error creating cursor handle" aunque si borra los registros pero no se reflejan los cambios en los DBgrid's
GRACIAS POR SU ASYUDA
with datamodule3.Query3 do
begin
close;
sql.Clear;
if Application.MessageBox('Se eliminaran permanentemente el cliente y sus envios, ¿Desea continuar? ','El Paquete',MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
try
begin
sql.Add('delete * from tabla2 where id = :numero2');
datamodule3.Query3.ParamByName('numero2').asstring:=datamodule3.Query2.Fields[0].AsString;
open;
with datamodule3.query1 do
begin
close;
sql.Clear;
sql.Add('delete from tabla1 where id =:numero1');
datamodule3.Query3.ParamByName('numero1').asstring:=datamodule3.Query1.Fields[0].AsString;
open;
end
end
except
begin
showmessage('Imposible eliminar el cliente o sus envios');
end;
end;
end;
end;
el error que me da es "error creating cursor handle" aunque si borra los registros pero no se reflejan los cambios en los DBgrid's
GRACIAS POR SU ASYUDA
Valora esta pregunta


0