Percorrer Dbgrid para validar se o campo já foi adicionado??

Delphi

23/07/2003

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

Curtidas 0

Respostas

Rosivaldo

Rosivaldo

23/07/2003

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)

:)


GOSTEI 0
Jelves

Jelves

23/07/2003

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


GOSTEI 0
Rosivaldo

Rosivaldo

23/07/2003

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.


GOSTEI 0
Jelves

Jelves

23/07/2003

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


GOSTEI 0
Rosivaldo

Rosivaldo

23/07/2003

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;



GOSTEI 0
POSTAR