Fórum Como controlar duplicidade no ClientDataSet #349041

15/11/2007

0

Olá pessoa.Gostaria de saber com faço para criar em um ClientDataSet uma forma de não deixar o usuário inserir duas vezes o mesmo item.
Este ClientDataSet está apenas em memória, não esta ligado a nenhuma query.


Obrigado!


Joaohenriquemf

Joaohenriquemf

Responder

Posts

15/11/2007

Vitor Alcantara

Tenta criar um indice do tipo unique no seu campo unico.

Ex:

  ClientDataSet1.IndexDefs.Add(´idx1´,´NomeDoCampo´,[ixUnique]);
  ClientDataSet1.IndexName := ´idx1´;



Responder

Gostei + 0

19/11/2007

Joaohenriquemf

Amigo deu certo, agora sim ele valida com ´Key Violation´, como faço para tratar esta mensagem?

Obrigado!


Responder

Gostei + 0

20/11/2007

Vitor Alcantara

Segue um simples exemplo de tratamento de erros.
var
  e:exception;
begin
  Try
     bla bla bla
     ClientDataSet.Post;
  Except
    on e:exception do
    begin
       //Testa a string do erro se encontra a mensage "Key Violation"
       if Pos(´Key Violation´, UpperCase(e.Message) ) > 0 then
       ShowMessage(´Registro duplicado´)
       else
       ShowMessage(e.Message);
    end;
  end;
end;



Responder

Gostei + 0

20/11/2007

Joaohenriquemf

Deu certo!Valew amigos.Obrigado!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar