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

SQL

Algoritmo

Delphi

Banco de Dados

Firebird

05/09/2018

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

Curtidas 0

Melhor post

Alex William

Alex William

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
GOSTEI 2

Mais Respostas

Natanael Ferreira

Natanael Ferreira

05/09/2018

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/
GOSTEI 2
Rafael

Rafael

05/09/2018

Obrigado pela força pessoal, infelizmente ainda não tive tempo de testar.
GOSTEI 0
POSTAR