Verificação de cpf já cadastrado no banco de dados.

05/09/2018

0

Pessoal eu tô com o seguinte problema, meu campo cpf foi salvo como unique no banco de dados então ele não vai permitir repetição na hora de salvar, mas toda vez que entro com um cpf repetido ele mostra os seguinte erro: violation of Primary key or Unique key on table cliente.

Eu queria ao invés de mostrar esse erro mostrasse uma mensagem, mas não estou conseguindo.

Alguém poderia me ajudar.

Ps: A mascara está sendo usada na field da query e no banco estou salvando apenas os números. E o banco de dados é firebird.

Agradeço a atenção!
Rafael

Rafael

Responder

Post mais votado

05/09/2018

Simples, quando seu sistema for cadastrar, antes de mais nada ele verifica no sistema se o CPF ja existe:

"SELECT COUNT(*) FROM <sua_tabela> WHERE cpf='<cpf_digitado>'";

Se a query retornar maior que zero, você retorna a mensagem pro cliente dizendo que ja existe cpf.

Outra forma, é ao lado do campo do CPF quando o usuario digitar, o sistema executar um Ajax/Função que vai no banco e verifica se já está la o cpf e exibe uma mensagem pequena ao lado do campo "CPF já cadastrado".

Só não sei te mostrar isso em codigo DELPHI porque eu não programo em DELHPI. Mas já é uma luz para o seu problema, :D

Alex William

Alex William
Responder

Mais Posts

05/09/2018

Natanael Ferreira

Você pode fazer um tratamento de exceções e mostrar uma mensagem amigável ao usuário:

 try
    // Coloque aqui o seu código para salvar
  except
    on e: Exception do
      if (Pos('Key Violation', e.message) > 0) then
        raise Exception.Create('Registro já existe !');
  end;

Veja este link, sobre tratamento de exceções:
http://www.planetadelphi.com.br/artigo/124/tratamento-de-exce%C3%A7%C3%B5es---parte-1/
Responder

23/09/2018

Rafael

Obrigado pela força pessoal, infelizmente ainda não tive tempo de testar.
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