Fórum Erro Chave Estrangeira... #576623
07/03/2017
0
Boa Tarde Pessoal...
Estou com o seguinte problema....
Tenho 2 Tabelas com a seguinte estrutura
Table 1 > Cliente
ID_Cliente integer,
nome varchar(10),
Primary key(Id_cliente),
Table 2 > Cpf
ID_Cliente integer,
CPF Varchar(100),
Existe uma Foreing Key Entre id_cliente da tabela cpf e id_cliente da tabela Cliente;
A estrutura dentro do delphi esta seguinte forma..
IBTable pra tabela de Cliente e IBTable para tabela CPF...
Os dois estão interligados com MasterSource e MasterFields...
Porém quando executo o comando IBtableCliente.post ele me da erro de Chave Estrangeira... Falando que o IDCliente da tabela CPF não existe na tabela de Clientes...
Me parece que quando executo o post na tabela 'pai' que é o IBTable tbcliente ele executa o posto também em todas as tabelas que estão ligadas
pelo masterSource...Sendo assim, como não existe no banco ainda o Cliente Cadastrado ele retorna esse erro...
Ja tentei da seguinte Forma.
IBTableCliente.post;
IBTableCPF.Post;
IBTransaction.Commit;
IBTableCliente.post;
IBTransaction.Commit;
IBTableCPF.Post;
IBTransaction.Commit;
Nenhuma com sucesso..
Como proceder?
Muito Obrigado.
Estou com o seguinte problema....
Tenho 2 Tabelas com a seguinte estrutura
Table 1 > Cliente
ID_Cliente integer,
nome varchar(10),
Primary key(Id_cliente),
Table 2 > Cpf
ID_Cliente integer,
CPF Varchar(100),
Existe uma Foreing Key Entre id_cliente da tabela cpf e id_cliente da tabela Cliente;
A estrutura dentro do delphi esta seguinte forma..
IBTable pra tabela de Cliente e IBTable para tabela CPF...
Os dois estão interligados com MasterSource e MasterFields...
Porém quando executo o comando IBtableCliente.post ele me da erro de Chave Estrangeira... Falando que o IDCliente da tabela CPF não existe na tabela de Clientes...
Me parece que quando executo o post na tabela 'pai' que é o IBTable tbcliente ele executa o posto também em todas as tabelas que estão ligadas
pelo masterSource...Sendo assim, como não existe no banco ainda o Cliente Cadastrado ele retorna esse erro...
Ja tentei da seguinte Forma.
IBTableCliente.post;
IBTableCPF.Post;
IBTransaction.Commit;
IBTableCliente.post;
IBTransaction.Commit;
IBTableCPF.Post;
IBTransaction.Commit;
Nenhuma com sucesso..
Como proceder?
Muito Obrigado.
Antonelly Silva
Curtir tópico
+ 0
Responder
Posts
07/03/2017
Alberto
Primeiro vc tem que incluir o registro na tabela mestre e dar um post
pra gravar o ID no banco.
.
somente depois vc da um post na tabela detalhe.
.
Eu já tive um problema parecido uma vez, mas não lembro a causa.
Ao dar o append na tabela detalhe o componente não preenchia o FK com o ID da tabela mestre.
Ai ao dar o post dava erro.
.
Certifique-se que ao dar o post na tabela detalhe o campo FK está preenchido.
(Claro que pra isso acontecer, no banco, vc deve definir uma trigger)
.
Qualquer duvida, comenta ai.
pra gravar o ID no banco.
.
somente depois vc da um post na tabela detalhe.
.
Eu já tive um problema parecido uma vez, mas não lembro a causa.
Ao dar o append na tabela detalhe o componente não preenchia o FK com o ID da tabela mestre.
Ai ao dar o post dava erro.
.
Certifique-se que ao dar o post na tabela detalhe o campo FK está preenchido.
(Claro que pra isso acontecer, no banco, vc deve definir uma trigger)
.
Qualquer duvida, comenta ai.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)