Fórum Percorrer Dbgrid para validar se o campo já foi adicionado?? #170922

23/07/2003

0

Bom dia a todos!

Alguém sabe como faço para verificar em um Dbrig se o registro já foi inserido?, tipo assim tenho um dbgrid que vou adicionando os registro, digamos que na primeira linha eu adiciono um codigo de um produto de numero 54 e vou tentar adicionar novamente este código nas linhas abaixo. gostaria de fazer de uma forma que não permitisse eu adicionar novamente o mesmo código.

Aceito Sugestões...

Muito Obrigado a todos!


Jelves


Jelves

Jelves

Responder

Posts

23/07/2003

Rosivaldo

Declara o campo que você não quer repetição como único.

Qualquer dúvida diz qual o banco q você tá usando que eu te falo como fazer isso (desde que eu saiba, hehehehe)

:)


Responder

Gostei + 0

23/07/2003

Jelves

Rosivaldo, estou usando Interbase com Dbexpress, na criação das minhas tabelas eu criei o campo como unique, é justamente por isso que tenho que tratar este campo todas as vezes que digitar o código do produto tenho que verificar se o mesmo código não foi digitado nas linhas acima do grid.


Obrigado pela força!

Jelves


Responder

Gostei + 0

23/07/2003

Rosivaldo

olha jelves, talvez se você colocasse uma query no after post, ou no before insert, para checar se já existe o produto cadastrado talvez funcione.


Responder

Gostei + 0

23/07/2003

Jelves

Desculpe-me a inexperiência, mais como seria???


Responder

Gostei + 0

24/07/2003

Rosivaldo

Bom, você pode tentar assim, ou então colocar isso como parâmetro. Isso é apenas uma dica, você pode pesquisar outras maneiras ou até mesmo os colegas tenham outras maneiras de fazer!
procedure TForm1.IBTable1AfterPost(DataSet: TDataSet);
begin
  with IBQuery1 do
  begin
    SQL.Clear;
    SQL.Add(´select CodigoProduto from Produtos where CodigoProduto = ´ + IntToStr(IBTable1.FieldByName(´CodigoProduto´).AsInteger));
    if not Prepared then Prepare;
    Open;
    if RecordCount > 0 then Raise Exception.Create(´Já existe produto com esse código, favor tente novamente´);
  end;
end;



Responder

Gostei + 0

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

Aceitar