Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cido

Usando while not Eof do

Recommended Posts

Pessoal é o seguinte:Tenho uma grid onde os dados são mostrados conforme open no cdsEstoqueLotesTenho um outro cds que para abrir usa como parametro dados de outro cds: exemplo: cdsAtualizaPrecos.Params.ParamByName('origem').Value:=cdsEstoqueLotes.FieldByName('origem').AsString;Qdo tento usar o codigo with DMAgencia.cdsAtualizaPrecos do try Open; First; while not Eof do begin Edit; FieldByName('precominimo').Value:=StrToFloat(edtPreco.Text); FieldByName('precodesejado').Value:=StrToFloat(edtPreco.Text); Post; Next; end; ApplyUpdates(-1); finally close; end;Ele simplesmente atualiza o registro onde esta o focus. Imagino que isto esta correto.Alguem saberia me dizer como atualizar todos os registros apresentados inicialmente no grid pelo cdsEstoqueLotes?Valeu.Cido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, o problema é o seguinteEle passa no primeiro registro e faz o q deve fazer. Ai recebe next, ao verificar se é EOF, ele não consegue ir para o proximo, ele finaliza a operação.Cido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema colocando a rotina dentro da primeira rotina. Veja a rotina completa: with DMAgencia.cdsEstoqueLotes do try DisableControls; Position:=GetbookMark; First; btnAplicar.Caption:='Aguarde...'; while not Eof do begin Edit; FieldByName('precoUnitario').Value:=StrToFloat(edtPreco.Text); Post; with DMAgencia.cdsAtualizaPrecos do try Open; begin Edit; FieldByName('precodesejado').Value:=StrToFloat(edtPreco.Text); Post; end; ApplyUpdates(-1); finally close; end; Next; end; ApplyUpdates(-1); gotoBookMark(Position); FreeBookMark(Position); EnableControls; finallyO passo agora é analisar se esta rotina pode ficar lenta ou não qdo estiver em produção.Valeu.Cido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.