Fórum como evitar duplicidade de dados em um cadastro? #242266
09/07/2004
0
por exemplo:
o operador cadastro os dados de uma pessoa chamada joão da silva santos, e sem querer o operador vai digitar o mesmo cadastro, como faço para evitar que este joão da silva santos seja incluido de novo e sem falar que poder haver outro joão da silva santos mas com os dados diferentes. :?:
Duilinho
Curtir tópico
+ 0Posts
09/07/2004
Tuiobecker
vc deve ter uma chave primaria na sua tabela, caso ela for o nome, nao serao cadastrados dois nomes iguais, mas pense assim, se for o nome a chave primaria, vc nao podera cadastrar duas pessoas diferente mas com o mesmo nome.
flw
Gostei + 0
09/07/2004
Dankada
Gostei + 0
09/07/2004
Gandalf.nho
Gostei + 0
09/07/2004
Horus
1. Coloquei uma Query no form.
2. No evento OnExit do DBEdit que é responsável pela entrada de dados no campo coloquei uma pesquisa usando a query para retornar qualquer registro da tabela que seja igual ao que está sendo inserido.
3. Se a query retornar algum registro executa uma ShowMessage de registro já incluido ou registro igual a outro.
Espero ter ajudado.
Gostei + 0
09/07/2004
Rodolpho123
Crie um campo, tipo [b:8dd932e328]cpf[/b:8dd932e328] para cada cliente inserido. Quando vc for inserir um novo registro, verifique se o [b:8dd932e328]cpf[/b:8dd932e328] do novo cliente foi encontrado (Locate para Tables, Select para Queries). Aí vc pode criar uma rotina de tratamento à seu gosto para esta operação.
Gostei + 0
03/10/2014
Helton Garrido
Gostei + 0
03/10/2014
Helton Garrido
1. Coloquei uma Query no form.
2. No evento OnExit do DBEdit que é responsável pela entrada de dados no campo coloquei uma pesquisa usando a query para retornar qualquer registro da tabela que seja igual ao que está sendo inserido.
3. Se a query retornar algum registro executa uma ShowMessage de registro já incluido ou registro igual a outro.
Gostei + 0
03/10/2014
Marisiana Battistella
Você pode incluir um outro tipo de validação, como o CPF ou RG, pois esses sim sabemos que devem ser únicos.
Acredito que seja esse o método mais utilizado e mais recomendado.
Gostei + 0
04/10/2014
Marlon Minotti
Simples assim, VLWs FLWs.
Gostei + 0
06/10/2014
Marisiana Battistella
Mas ele não pode criar um INDEX no campo CPF ao invés de ficar fazendo um select para verificar?
Com o INDEX ele não vai conseguir inserir valores duplicados e quando acontecer uma tentativa de inserção duplicada, ocorre um erro, então ele só teria que tratar esse erro...
Exemplo de sintaxe no Oracle:
CREATE UNIQUE INDEX ON dept_unique_index dept (dname)
TABLESPACE indx;Gostei + 0
21/02/2018
Helton Garrido
Minha tabela é CLIENTE e o campo CPF
Já coloquei na OnExit da DBEDit o seguinte código:
If dm.tbCliente.Locate('CPF',DBEdit5.Text,[loCaseInsensitive, loPartialKey]) Then
Begin
MessageDlg('Este paciente já se encontra cadastrado na Base de Dados!',mtWarning,[MBOK],0);
DBEdit5.SetFocus;
end; Gostei + 0
21/02/2018
Jerson Boer
Uma forma prática e limpa de fazer uma validação dessa é você criar uma função a ser chamada quando você der o Salvar do registro (momento em que todos os seus dados já estão preenchidos e não fica a informação em Exit de campo). Eu passaria pelo menos 2 parâmetros na função (IDCliente e CPF) e essa função ter uma query (crie o componente em tempo de execução) que vá buscar em seu banco de dados
Select * from Cliente where CPF = X and IDCliente <> Y
Complementando, no seu salvar você vai fazer:
if FuncaoCliente(IDCliente,CPF) = True then begin -- Sua mensagem de que o registro já existe end else begin -- Seu processo de salvar o registro end;
Vejam aí, qualquer coisa retorno com a função mais detalhada.
Gostei + 0
21/02/2018
Jerson Boer
Mas ele não pode criar um INDEX no campo CPF ao invés de ficar fazendo um select para verificar?
Com o INDEX ele não vai conseguir inserir valores duplicados e quando acontecer uma tentativa de inserção duplicada, ocorre um erro, então ele só teria que tratar esse erro...
Exemplo de sintaxe no Oracle:
CREATE UNIQUE INDEX ON dept_unique_index dept (dname)
TABLESPACE indx;Mariana, agora que observei sua resposta sobre criar o index e não o select, dando minha opinião, se ele tiver um tipo sistema (como o meu) onde o cadastro de cliente pode sofrer revisões e e deverá manter as versões anteriores a indexação do CPF pode ser um problema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)