Fórum Problema com Foreign Key #471123
24/02/2014
0
Olá Pessoal,
Eu não sei o porque deste erro
Project CMS.exe raised exception class TDBXError with message 'violation of FOREIGN KEY constraint "FK_KIT_1" on table "KIT"
Foreign key reference target does not exist'.
Isso acontece toda vez que eu tento inserir na tabela KIT e também da tabela DETALLE_KIT tudo de uma vez. O código no qual utilizo é este:
OBS:
A tabela DETALLE_KIT tem uma chave estrangeira da tabela KIT, onde para o DETALLE_KIT pegar o ID Primario da Tabela KIT para a sua chave secunddaria é gerado no delphi (ou seja um codigo feito no data module) o codigo primario que vai ser inserido na tabela KIT antes de inserir para assim passar para a tabela DETALLE_KIT e ser inserido tudo de uma vez.
Alguem poderia me ajudar? Já não sei mais o que fazer...
Desde já agradecido!
Eu não sei o porque deste erro
Project CMS.exe raised exception class TDBXError with message 'violation of FOREIGN KEY constraint "FK_KIT_1" on table "KIT"
Foreign key reference target does not exist'.
Isso acontece toda vez que eu tento inserir na tabela KIT e também da tabela DETALLE_KIT tudo de uma vez. O código no qual utilizo é este:
procedure TF_FormKit.btnSalvarClick(Sender: TObject);
begin
with DMPrin do
begin
//Cadastro do KIT
cds_Cadkit.Open;
cds_Cadkit.Append;
cds_CadKitID_FUNCIONARIO.Value:= DMPesq.cds_PesqFuncionarioID_FUNCIONARIO.Value;
cds_CadKitNOMBRE.AsString:= edtNomeKit.Text;
cds_CadKitFECHA.AsDateTime := strtodate(formatdatetime('dd/mm/yyyy',now));
cds_CadKitVALOR_TOTAL.AsFloat := StrToFloat(edtTotalValorKit.Text);
// Cadastro do DETALLE_KIT
cds_Itens.First;
while not cds_Itens.eof do
begin
cds_CadDetalle_Kit.Append;
cds_CadDetalle_KitID_PRODUCTO.Value:= cds_ItensID_Producto.Value;
cds_CadDetalle_KitCANTIDAD.AsFloat:= cds_ItensQuantidade.AsFloat;
cds_CadDetalle_KitPRECIO_COSTO.AsFloat:= cds_ItensPreco_Costo.AsFloat;
cds_CadDetalle_KitPRECIO_MEDIO.AsFloat:= cds_ItensPreco_Medio.AsFloat;
cds_CadDetalle_KitPRECIO_VENTA.AsFloat:= cds_ItensPreco_Venta.AsFloat;
cds_CadDetalle_Kit.Post;
cds_Itens.Next;
end;
cds_CadDetalle_Kit.ApplyUpdates(0);
//cds_Itens.EmptyDataSet;
end;
end;
OBS:
A tabela DETALLE_KIT tem uma chave estrangeira da tabela KIT, onde para o DETALLE_KIT pegar o ID Primario da Tabela KIT para a sua chave secunddaria é gerado no delphi (ou seja um codigo feito no data module) o codigo primario que vai ser inserido na tabela KIT antes de inserir para assim passar para a tabela DETALLE_KIT e ser inserido tudo de uma vez.
Alguem poderia me ajudar? Já não sei mais o que fazer...
Desde já agradecido!
Edson Vilhalba
Curtir tópico
+ 0
Responder
Posts
24/02/2014
Marisiana Battistella
Olá Edson!
Não estaria faltando este comando?
Pelo que sei , o Post é o que salva o registro no banco.
Então o erro poderia estar ocorrendo porque vc tá tentando referenciar um KIT na tabbela DETALHE_KIT que ainda não existe no banco de dados...
Imagino que seja uma possibilidade, me corrijam se eu estiver errada.
Não estaria faltando este comando?
cds_Cadkit.Post;
Pelo que sei , o Post é o que salva o registro no banco.
Então o erro poderia estar ocorrendo porque vc tá tentando referenciar um KIT na tabbela DETALHE_KIT que ainda não existe no banco de dados...
Imagino que seja uma possibilidade, me corrijam se eu estiver errada.
Responder
Gostei + 0
24/02/2014
Edson Vilhalba
Olá Edson!
Não estaria faltando este comando?
Pelo que sei , o Post é o que salva o registro no banco.
Então o erro poderia estar ocorrendo porque vc tá tentando referenciar um KIT na tabbela DETALHE_KIT que ainda não existe no banco de dados...
Imagino que seja uma possibilidade, me corrijam se eu estiver errada.
Não estaria faltando este comando?
cds_Cadkit.Post;
Pelo que sei , o Post é o que salva o registro no banco.
Então o erro poderia estar ocorrendo porque vc tá tentando referenciar um KIT na tabbela DETALHE_KIT que ainda não existe no banco de dados...
Imagino que seja uma possibilidade, me corrijam se eu estiver errada.
Olá Marisiana,
Então testei dessa forma que você me indicou porém agora ele está mostrando um erro diferente
Project CMS.exe raised exception class EDBClient with message 'No corresponding master record found'.
Eu acredito que esse erro seja pelo fato de eu estar utilizando master detail, que no caso o TClientDataSet do KIT passa a ter um campo a mais alem de seus valores que é o TSELDataSet do DETALLE_KIT que é um tipo DataSet. Mais não sei como resolver isso.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)