Saber se um código existe em um ClientDataSet

Delphi

11/09/2013

Olá tenho alguns produtos em um ClientDataSet em memória.
Adicionei-os através de um POST.
Ao adicionar um produto novo, se o código dele já existir no ClientDataSetatual eu preciso apresentar uma mensagem na tela dizendo que o mesmo já existe e aumentar a quantidade deste produto adicionando 1.
Como posso resolver este problema? Não quero me posicionar neste registro e sim saber se ele já existe no ClientDataSet.
Claudio Junior

Claudio Junior

Curtidas 0

Respostas

Marcos Oliveira

Marcos Oliveira

11/09/2013

Cláudio, não sei se é possível fazer isso que você quer, sem posicionar o registro no ClientDataSet.
Você pode fazer da seguinte forma:
if ClientDataSetatual.Locate('campo','texto_a_procurar',[loCaseInsensitive]) then
begin
      // Mensagem informando que já existe...
      ClientDataSetatual.Edit;
      ClientDataSetatual.FieldByName('qtde').AsFloat := ClientDataSetatual.FieldByName('qtde').AsFloat + 1;
      ClientDataSetatual.Post;
end;


Lógico, que o código é só um exemplo... Você deve adaptar ao seu programa.

Att,

Marcos
GOSTEI 0
Marco Salles

Marco Salles

11/09/2013

Sem posicionar o registro , vc pode utilizar o CloneCursor , que mantém um cursor independente dos dados

[]sds
GOSTEI 0
Claudio Junior

Claudio Junior

11/09/2013

Sem posicionar o registro , vc pode utilizar o CloneCursor , que mantém um cursor independente dos dados

[]sds


Obrigado o CloneCursor resolveu meu problema da seguinte forma:

Cds.CloneCursor(CdsItensVenda, True);
if Cds.Locate('IDPRODUTO', parambyname('IDPRODUTO').AsString, [loCaseInsensitive]) then
    ShowMessage('Item já escolhido!');




Abraços
GOSTEI 0
Marco Salles

Marco Salles

11/09/2013

Que bom Claudio

abraços e sds

GOSTEI 0
POSTAR