Como excluir automaticamente os Registros da Detail?

Firebird

26/03/2008

Olá Amigos, é uma duvida primária... mas como que se configura o relacionamento entre as tabelas para quando eu excluir um registro da tabela Master os Registros da Detail sejam automaticamente excluidos também?

agradeço desde já a ajuda..
vlw!!


Daniel Martins

Daniel Martins

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

26/03/2008

faça o relacionamento com delete cascade.


GOSTEI 0
Daniel Martins

Daniel Martins

26/03/2008

Como faço isso no Interbase?


GOSTEI 0
Pestana_

Pestana_

26/03/2008

acrecente [b:ad69b1e989]On Delete Cascade[/b:ad69b1e989] junto ao comando Foreign Key. ex.:

tabela pessoa:
create table pessoa(
id_pessoa integer not null,
nome varchar(50),
constraint pk_pessoa Primary key(id_pessoa));


tabela telefone:
create table telefone(
id_tel integer not null,
numero integer,
id_pessoa integer not null,
constraint pk_telefone Primary key(id_tel),
constraint fk_idPessoa_telefone Foreign key(id_pessoa) references pessoa(id_pessoa) on delete cascade);


com isso ao deletar o registro da tabela PESSOA automaticamente o banco deleta todos os registro da tabela TELEFONE, desde que o valor do campo [i:ad69b1e989]id_pessoa[/i:ad69b1e989] da tabela TELEFONE seja igual ao valor do campo [i:ad69b1e989]id_pessoa[/i:ad69b1e989] da tabela PESSOA.

entendeu?
flw.


GOSTEI 0
Ant.carlos/sp

Ant.carlos/sp

26/03/2008

Olá!

Caso estiver usando o trio: Sql + DataSetProvider + ClientDataSet

Configure no DataSetProvider as Opcoes:

[ poCascadeDeletes , poCascadeUpdates , poAutoRefresh ]

100+


GOSTEI 0
Picyka

Picyka

26/03/2008

simples.....
quando for excluir o mestre
faça um sql

delete from telefone
where
id_pessoa=cdsPessoaid_pessoa

faça isso no Befordelete da clientdataset pessoa.


GOSTEI 0
POSTAR