verificar integridade de registro nas tabela referencia ?
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.
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
Curtidas 0
Respostas
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.
Obrigado.
GOSTEI 0
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;
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
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.
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