Fórum Master X Detail - Apagar Registros #226557

16/04/2004

0

Alguem sabe como apago os itens de um pedido automaticamente quando apago o pedido mestre?

Atualmente faço tudo na mão.

Para acesso aos dados uso o SqlDataSet, DataSetProvider e o ClientDataSet...

Se tiverem alguma sugestão melhor me ajudem.

Obrigado,
Fabio


Henry.fartura

Henry.fartura

Responder

Posts

16/04/2004

Castilho

No caso você terá que usar uma Trigger de deleção no banco de dados aí todas as vezes que os dados forem deletados na tabela Pai automaticamente serão deletados na filho....

CREATE TRIGGER QUALQUERNOME FOR TABELAPAI AFTER DELETE POSITION 0 AS
DECLARE VARIABLE numrows INTEGER;
BEGIN

delete from NOMETABELAFILHO
where
TABFILHO.CHAVE = OLD.CHAVE

END

Faça as Devidas alterações e incremente o que precisar....


Responder

Gostei + 0

16/04/2004

Rsballoussier

A resposta dada também é muito boa, mas tem de criar um constrição da tabela citada como chave estrangeira com opção de ON DELETE CASCADE.
ex:
create table MASTER (indice integer primary key not null, nome varchar(40));

create table DETAIL (ind_detail integer primary key not null, data date);

alter table DETAIL add constraint fk_master_detail foreign key (ind_detail) references MASTER (indice) on delete cascade;

Quando tenta deletar um registro da tabela MASTER e que continha alguns registros dependentes, os mesmos registros são deletados automaticamente.

Até mais.


Responder

Gostei + 0

17/04/2004

Henry.fartura

muito interessante essas alternativas...
olhem a propriedade options do datasetprovider chamada poCascadeDeletes e vejam a ajuda dessa propriedade....
Fiz tudo certo como na ajuda mas não funcionou...
Bom, se alguem souber algum motivo me avisem...
E sobre fazer um Locate num campo Lookup...to precisando saber isso se da certo num ClientDataSet normal ou tenho que fazer uma query.....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar