Pegar valores do registro anterior em DataSet
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?
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é+
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
Curtidas 0
Respostas
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é+
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
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
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
Tipo nome do DataSet.OldValue... Esta propriedade permite pegar os valores contidos anteriormente no DS...
Flw
GOSTEI 0