Erro violation of PRIMARY or UNIQUE KEY constraint

18/03/2016

0

Boa tarde pessoal,
Estava usando o meu aplicativo de teste normalmente que tenho e começou a aparecer essa mensagem ao gravar
violation of PRIMARY or UNIQUE KEY constraint "@1" on table "@2"

Estou meio perdido com esse @1 e @2 que aparecem
Estou usando banco firebird (2.5) e o Delphi 2010
Usuario

Usuario

Responder

Posts

18/03/2016

William

Basicamente essa mensagem quer dizer que você está tentando gravar um valor repetido em um campo que é PRIMARY KEY ou UNIQUE KEY, ou seja, esses tipos não aceitam valores duplicados na tabela.
Responder

18/03/2016

Usuario

Até ai tudo bem...
Só queria saber o motivo de apresentar @1 e @2 no lugar dos nomes da constraint e da tabela
Pq faço várias inserções ao gravar... queria saber em qual tabela está dando o erro para ter uma noção de onde corrigir...
Responder

18/03/2016

William

Esses "@" indicam parametrizações, então aconselho você a testar esses INSERTs via ferramentas IBExpert, com isso terá um feedback melhor dos erros.
Responder

13/02/2024

Zildo

---------------------------
Free SNGPC - Sistema Nacional de Gerenciamento de Produtos Controlados
---------------------------
SQL Error: violation of PRIMARY or UNIQUE KEY constraint "PK_MEDICO" on table "MEDICO" Problematic key value is ("CRM" = '9699'). Error Code: -803. can't format message 13:197 -- message file C:\\Windows\\firebird.msg not found The SQL: INSERT INTO MEDICO (CRM,MEDICO,CONSELHO,UF,CADASTRO) VALUES (?,?,?,?,?);
---------------------------
OK
---------------------------
Ocorre na hora qua mando gravar um medico que ja existe! Quero colocar uma mensagem no delphi e nao estou conseguindo.
Responder

13/02/2024

Zildo

---------------------------
Free SNGPC - Sistema Nacional de Gerenciamento de Produtos Controlados
---------------------------
SQL Error: violation of PRIMARY or UNIQUE KEY constraint "PK_MEDICO" on table "MEDICO" Problematic key value is ("CRM" = ''9699''). Error Code: -803. can''t format message 13:197 -- message file C:\\\\Windows\\\\firebird.msg not found The SQL: INSERT INTO MEDICO (CRM,MEDICO,CONSELHO,UF,CADASTRO) VALUES (?,?,?,?,?);
---------------------------
OK
---------------------------
Ocorre na hora qua mando gravar um medico que ja existe! Quero colocar uma mensagem no delphi e nao estou conseguindo.
Responder

13/02/2024

Arthur Heinrich

Você tem várias opções para isso:

1 - Pode tratar o erro, usando try/catch, para que o erro não seja exibido
2 - Pode checar se o registro já existe e ignorar
3 - Pode modificar o comando para só inserir se não existe
4 - Pode modificar o comando para inserir quando não existe e modificar quando existe
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar