Pegar valores do registro anterior em DataSet

Delphi

18/11/2004

Olá

Tenho um DataSet e preciso varrê-lo para eliminar redundâncias. Para isso, preciso olhar o registro anterior para comparar o valor do registro atual com o anterior. Entretanto, como faço para acessar o valor do registro anterior ao que estou?

with cdsResultSet do
begin
     while not Eof do
     begin
          { Supondo que quero só 2 campos }
          if (Fields[1].AsString = <meu registro anterior>) and
             (Fields[4].AsString = <meu registro anterior>) then
          begin
               cdsResultSet.Delete;
          end;
     end;
end;

Pensei em usar array, mas não sei quais campos irei testar (isso varia), portanto não sei que tamanho o array terá.

Ou ainda, alguém sabe algum método do ClientDataSet que elimine essa redundância?

Obrigado
Até+


Paulo_amorim

Paulo_amorim

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

18/11/2004

Olá

Só pra começar, o código do meu Post ia dar errado, já que não tem Next no While... mas tudo bem


Eu resolvi o problema, no caso utilizando comandos Next e Prior seguidamente campo a campo, ou seja, fiz um for até Fields.Count - 1.
Em cada um procedi:
-Peguei o valor do registro anterior (ou seja, antes do Next no while) e coloquei em uma variável
-Agora sim, Next
- Comparo o valor do campo (que agora eh o atual) com essa variável
- Faço o que tenho que fazer

Até+


GOSTEI 0
Repa

Repa

18/11/2004

Oi Paulo, normalmente iria comparar um valor c/ todos os registros, mas não sei como é a sua aplicação nesse caso p/ comparar apenas c/ o anterior .


GOSTEI 0
Miguelitobh

Miguelitobh

18/11/2004

Paulo, procure algo relacionado a old.value...

Tipo nome do DataSet.OldValue... Esta propriedade permite pegar os valores contidos anteriormente no DS...

Flw


GOSTEI 0
POSTAR