verificar integridade de registro nas tabela referencia ?

Delphi

11/02/2009

bom dia, tenho no BD ( INTERBASE ) relacionamento de tabela, exemplo
TABELAS : CLIENTE , CONTASRECEBER, PEDIDO;

Teria alguma forma , ou funcao que eu possa verificar a integridade , das tabelas. Tipo qdo eu for tentar EXCLUIR um cliente eu executar TAIS COMANDO que ele verifica quais INTEGRIDADE a tabela cliente tem e verifica se existe registro nas tabelas referenciais.

Basicamente hj verifico - manualmente nas tabelas que eu sei q existe integridade ( dando SELECT nos registro ), tabela por tabela, e toda vez q crio uma tabela ( tenho q mudar o CODIGO com mais um instrucao SQL ).

deu para entender oq eu presciso. Obrigado.

Utililo D7, interbase.


Walter Faria

Walter Faria

Curtidas 0

Respostas

Woinch

Woinch

11/02/2009

Você quer que ao apagar o cliente (tabela pai) ele remova todos os registros relacionados a esse cliente nas tabelas filhas? É isso? Se sim infelizmente não tem como fazer se não apagar primeiro da filha depois da pai. Caso contrário explique melhor porque não deu para entender direito.

Obrigado.


GOSTEI 0
Walter Faria

Walter Faria

11/02/2009

obrigado, por responder.

deixa eu tentar me expressar melhor.
nas tabelas filhas( Pedido, ContasReceber ) existe CodCliente , qdo tentar excluir um registro na tabela pai ( Cliente ), em run-time queria uma funcao q verifique todas as integridade (FK ) da tabela cliente, e uma a uma ele verifica se determinado registro pode ser apagado ou nao da tabela cliente. Caso nao possa mostrar msg:
no evento onBeforeDelete ficaria assim :

For i:=0 to (SqlCadastro.TabelasRelacionadas.Count - 1) Do
Begin
if (SqlCadastro.TabelasRelacionadas.Strings[i] = ´PEDIDO´) Then
Raise CiroException.Create(´Este cliente possui pedidos e não pode ser excluído!´)
End;


GOSTEI 0
Woinch

Woinch

11/02/2009

Uma dica: porque você não utiliza exceções para tratar os erros retornados?

Pesquise por ´tratar erro chave estrangeira delphi´ no Google que logo na primeira página você irá encontrar algo sobre o que você precisa.


GOSTEI 0
POSTAR