Fórum Busca em ClientDataSet #331939
24/10/2006
0
mais presciso efetuar uma busca nesse CDS onde o valor de um campo seja igual a true.... e todos q forem igual a true... deletar.....
alguem tem alguma idéia... estou no aguardo..obrigado
Thiago Coleti
Curtir tópico
+ 0Posts
24/10/2006
Steve_narancic
Gostei + 0
24/10/2006
Thiago Coleti
mais me da um idéia de linha código por favor.. num tah saindo aki.rs
obrigado..
Gostei + 0
24/10/2006
Macario
var begin ClientDataSet1.Filter := ´NomedoCampo = ValorTRue´; ClientDataSet1.Filtered := true; ClientDataSet1.disablecontrols; ClientDataSet1.First; while not ClientDataSet1.eof do begin ClientDataSet1.Edit; ClientDataSet1.FieldByName(´Campo´).AsString := NovoValor; ClientDataSet1.Post; ClientDataSet1.Next; end; ClientDataSet1.Enablecontrols; end;
Espero que ajude. 8)
Gostei + 0
24/10/2006
Steve_narancic
Begin clientdataset.filter:= ´CAMPO = 10´; clientdataset.filtered:= true; clientdataset.first; while not clientdaset.eof do begin clientdaset.edit; clientdaset[´CAMPO_ALTERAR´]:= ´NOVO VALOR´ clientdaset.post clientdaset.next; end; end;
no codigo acima o clientdaset filtra todos os registro onde campo for 10 e percorro os registros do inicio ao fim alterando o campo CAMPO_ALTERAR para NOVO VALOR.
Gostei + 0
24/10/2006
Macario
So completando o que [b:d4e77807b8]eu[/b:d4e77807b8] e o colega [b:d4e77807b8]steve_narancic[/b:d4e77807b8] postamos.
Esquecemos de indicar apos o while voce tem que retirar o filtro aplicado ao ClientDataSet.
ClientDataSet1.Filtered := false; ClientDataSet1.Filter := ´´;
:idea:
Gostei + 0
25/10/2006
Thiago Coleti
a idéia de vc é bem do tipo q presciso.. mais tah ocorrendo um probleminha.... tipo.. eu tenho 5 registro com campo = true..
registro.. 1, 2, 3, 4, 5..
mando apagar... ele apaga os registros impares e pula os pares... não faço idéia pq..
posto aki o código do delete pra vcs analisarem... mais acho q fiz td certo.
CDSChequesAv.Filter := ´teste = true´; CDSChequesAv.Filtered := True; CDSChequesAv.DisableControls; CDSChequesAv.First; while not CDSChequesAv.Eof do begin CDSChequesAv.Edit; CDSChequesAvfavorecido.Value := ´´; CDSChequesAvseq.Value := CDSChequesAvseq.Value; CDSChequesAvhistorico.Value := ´´; CDSChequesAvdfclct.Value := 0; CDSChequesAvvalor.Value := 0; CDSChequesAvdtvcto.Value := Date; CDSChequesAvemissao.Value := Date; CDSChequesAvuso.Value := False; CDSChequesAvteste.Value := False; CDSChequesAv.Post; CDSChequesAv.Next; end; CDSChequesAv.EnableControls; CDSChequesAv.Filtered := False; CDSChequesAv.Filter := ´´;
se tiverem alguma idéia..estou no aguardo..obrigado..
Gostei + 0
25/10/2006
Steve_narancic
Gostei + 0
26/10/2006
Thiago Coleti
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)