GARANTIR DESCONTO

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.
Antonelly Silva

Antonelly Silva

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.
Responder

Gostei + 0

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

Aceitar