Fórum Preciso de ajuda para impedir registro repetidos #589429
30/11/2017
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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.
Luiz Vichiatto
Responder
Gostei + 1
Mais Posts
01/12/2017
Raimundo Pereira
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)