Fórum Pegar valores do registro anterior em DataSet #258898
18/11/2004
0
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
Curtir tópico
+ 0Posts
18/11/2004
Paulo_amorim
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
18/11/2004
Repa
Gostei + 0
15/07/2005
Miguelitobh
Tipo nome do DataSet.OldValue... Esta propriedade permite pegar os valores contidos anteriormente no DS...
Flw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)