Fórum Criando integridade que não deixei excluir um registro que esteja sendo usado em outra tabela #481620

06/06/2014

0

Bom dia pessoal!

Sou um programador iniciante. Criei uma tabela chamada PESSOA e outra chamada TIPOPESSOA. Fiz o relacionamento entre as duas. Abaixo são os campos de cada:

[img]http://arquivo.devmedia.com.br/forum/imagem/346415-20140606-105716.jpg[/img]

[img]http://arquivo.devmedia.com.br/forum/imagem/346415-20140606-105821.jpg[/img]

Utilizo o Delphi 2010, IBExpert e Firebird 2.1. Gostaria de saber como faço a integridade no Banco de Dados para que ao tentar excluir um registro da tabela TIPOPESSOA que esteja ligada na tabela PESSOA, apareça uma mensagem: "Esse tipo de Pessoa não pode ser excluído porque está sendo utilizada na tabela Pessoa!" e não deixe fazer a exclusão.
Alisson Sudak

Alisson Sudak

Responder

Posts

06/06/2014

Joel Rodrigues

Rapaz, faz um bom tempo que não uso Firebird, mas creio que você consiga fazer isso utilizando um trigger before delete na tabela TIPOPESSOA. Se o registro estiver sendo usado, você lança uma exceção, que será capturada no Delphi.
Responder

Gostei + 0

06/06/2014

Alisson Sudak

Então Joel... até essa parte eu entendi, mas eu não sei criar esse código =/
Responder

Gostei + 0

06/06/2014

Joel Rodrigues

Pesquise sobre como criar triggers e como lançar exceções no Firebird.
Link útil: http://www.firebirdsql.org/refdocs/langrefupd15-psql-exception.html
Responder

Gostei + 0

06/06/2014

Jair Souza

No firebird não tem nada parecido como no Access ?

[img:descricao=Integridade]http://arquivo.devmedia.com.br/forum/imagem/343353-20140606-134133.png[/img]
Responder

Gostei + 0

06/06/2014

Joel Rodrigues

Então, Jair. O Firebird faz esse tratamento, mas eu entendi que ele deseja customizar a mensagem de erro, para apresentar algo mais amigável para o usuário.
Responder

Gostei + 0

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

Aceitar