Preciso de ajuda para impedir registro repetidos
Vamos os detalhe
Gostaria de impedir field CL_FANTASIA de receber nomes iguais (criar uma chave unica nesse caso não é possível pq a ideia é fazer via código)
eu tenho uma verificação que procura na tabela se existe um nome igual e lança uma mensagem caso encontre
FDLerFantasia.Active := False;
FDLerFantasia.ParamByName('fantasia').Value := DBNomeFantasia.Text;
FDLerFantasia.Active := True;
if FDLerFantasiaCL_FANTASIA.Value <> '' then
begin
if (FDLerFantasia.RecordCount = 1) then
begin
MessageDlg('Nome Fantasia já Cadastrado!!!',mtWarning,[mbOK],0);
DBNomeFantasia.SetFocus;
Exit;
end;
end;
O detalhe é que se for EDITAR um registro que tenha um nome fantasia no seu registro a verificação vai retornar a mensagem.
Enfim. eu preciso tratar se um determinado registro que tem seu nome fantasia e evitar a mensagem na hora de EDITAR
Gostaria de impedir field CL_FANTASIA de receber nomes iguais (criar uma chave unica nesse caso não é possível pq a ideia é fazer via código)
eu tenho uma verificação que procura na tabela se existe um nome igual e lança uma mensagem caso encontre
FDLerFantasia.Active := False;
FDLerFantasia.ParamByName('fantasia').Value := DBNomeFantasia.Text;
FDLerFantasia.Active := True;
if FDLerFantasiaCL_FANTASIA.Value <> '' then
begin
if (FDLerFantasia.RecordCount = 1) then
begin
MessageDlg('Nome Fantasia já Cadastrado!!!',mtWarning,[mbOK],0);
DBNomeFantasia.SetFocus;
Exit;
end;
end;
O detalhe é que se for EDITAR um registro que tenha um nome fantasia no seu registro a verificação vai retornar a mensagem.
Enfim. eu preciso tratar se um determinado registro que tem seu nome fantasia e evitar a mensagem na hora de EDITAR
Emanuel Gonçalves
Curtidas 0
Melhor post
Luiz Vichiatto
01/12/2017
No caso você terá que fazer esta verificação quando o estiver incluindo o cadastro e não quando você está editando, há uma diferença de INSERT para UPDATE.
No INSERT você faz a consistência do nome e no UPDATE não faz consistência.
Porém você não deve permitir que o nome venha ser alterado, bloqueando o campo do nome, ou não o incluindo no UPDATE.
Tenho uma rotina que não permite que o cliente altere o nome, mesmo sendo UPDATE. Quando necessário, tenho uma rotina específica para alteração do nome, onde faço a validação.
espero ter ajudado.
No INSERT você faz a consistência do nome e no UPDATE não faz consistência.
Porém você não deve permitir que o nome venha ser alterado, bloqueando o campo do nome, ou não o incluindo no UPDATE.
Tenho uma rotina que não permite que o cliente altere o nome, mesmo sendo UPDATE. Quando necessário, tenho uma rotina específica para alteração do nome, onde faço a validação.
espero ter ajudado.
GOSTEI 1
Mais Respostas
Raimundo Pereira
30/11/2017
Boa tarde!
Acredito que seja uma tela de cadastro de clientes...
Você deve possuir uma chave estrangeira "CPF ou CNPJ"
Usando a função insert or update você não precisa realizar tal verificação.
Por outro lado se preferir, você pode criar uma função no Delphi para localizar o registro com retorno de Falso ou Verdadeiro.
1 Roda a função se o retorno for falso você realizar seu insert.
Eu particularmente para algumas rotinas uso insert or update
Acredito que seja uma tela de cadastro de clientes...
Você deve possuir uma chave estrangeira "CPF ou CNPJ"
Usando a função insert or update você não precisa realizar tal verificação.
Por outro lado se preferir, você pode criar uma função no Delphi para localizar o registro com retorno de Falso ou Verdadeiro.
1 Roda a função se o retorno for falso você realizar seu insert.
Eu particularmente para algumas rotinas uso insert or update
GOSTEI 0