Gaabi Motta Postado Abril 14, 2011 Denunciar Share Postado Abril 14, 2011 como resolver um erro de violação de chave estrangeira ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 14, 2011 Denunciar Share Postado Abril 14, 2011 que tal postar o erro ? mas muito provavelmente seja porque a chave para o campo que voce definiu, tem valores repetidos.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gaabi Motta Postado Abril 14, 2011 Autor Denunciar Share Postado Abril 14, 2011 (editado) Bom , o meu codigo é este:procedure TFRM_CadastroChamados.Button2Click(Sender: TObject);var Defeito : String;begin inherited; SQlChamadoItensChamadoCODITENSCHAMADO.AsInteger := Chamados.ProximoRegistroItemChamado; cdsItensChamadoTemp.Append; cdsItensChamadoTempCODITENSCHAMADO.AsInteger := Chamados.ProximoRegistroItemChamado; cdsItensChamadoTempCODCHAMADO.AsInteger := StrToInt(edtCodigo.Text); cdsItensChamadoTempCODITEMEQPTO.AsInteger := cbbItemEquipamento.KeyValue; cdsItensChamadoTempDEFEITOITEM.Value := InputBox('Digite o defeito:','Defeito',''); cdsItensChamadoTemp.Post; cdsItensChamado.ApplyUpdates(0); cdsItensChamado.Close; cdsItensChamado.Open; dbgItemChamado.Refresh;end;só que quando eu gravo , ele gera um codigo já existente. Editado Abril 14, 2011 por Gaabi Motta Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 14, 2011 Denunciar Share Postado Abril 14, 2011 só que quando eu gravo , ele gera um codigo já existente. por isso ocorre o erro de violação de chave, pois existe registro duplicado ... exemplo:cdsItensChamadoTempCODITENSCHAMADO.AsInteger;se este for o campo que voce definiu para ser chave primária, o valor deve ser somado de 1, para que não ocorram valores iguais, quando for salvar o registro.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gaabi Motta Postado Abril 14, 2011 Autor Denunciar Share Postado Abril 14, 2011 só que quando eu gravo , ele gera um codigo já existente. por isso ocorre o erro de violação de chave, pois existe registro duplicado ... exemplo:cdsItensChamadoTempCODITENSCHAMADO.AsInteger;se este for o campo que voce definiu para ser chave primária, o valor deve ser somado de 1, para que não ocorram valores iguais, quando for salvar o registro.abraçoBom esse probleminha eu resolvi, só que a na tabela "itensChamado"" eu tenho um campo chamado "CODCHAMADO" que esta relacionado com a chave primária da Tabela Chamados, só que quando eu vou inserir um registro na tabela itensChamados (inserir o codigo do cahamado) ocorre um erro de violação de chave estrangeira, eu sei que este erro acontece por que estou inserindo uma chave estrangeira que ainda não foi gravada, tem como resolver isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gaabi Motta Postado Abril 14, 2011 Autor Denunciar Share Postado Abril 14, 2011 Bom esse probleminha eu resolvi, só que a na tabela "itensChamado"" eu tenho um campo chamado "CODCHAMADO" que esta relacionado com a chave primária da Tabela Chamados, só que quando eu vou inserir um registro na tabela itensChamados (inserir o codigo do cahamado) ocorre um erro de violação de chave estrangeira, eu sei que este erro acontece por que estou inserindo uma chave estrangeira que ainda não foi gravada, tem como resolver isso?alguém , por um acaso poderia me ajudar ! Obrigada . Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 14, 2011 Denunciar Share Postado Abril 14, 2011 veja como usar o autoincremento http://scriptbrasil.com.br/forum/index.php...=autoincrementoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gaabi Motta
como resolver um erro de violação de chave estrangeira ?
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.