Fórum Barra de Progresso em uma Query #369225
21/03/2009
0
Pessoal,
Tenho a rotina abaixo:
ibquery49.close;
ibquery49.open;
ibquery49.first;
while not ibquery49.Eof do
begin
preco:= IBQuery49PV.AsString;
preco:= floattostr(strtofloat(preco) + strtofloat(preco) * strtofloat(edit2.text) / 100);
valor:= strtofloat(preco);
casas:= 2;
result:= floattostrf(valor,ffFixed,18,casas);
preco:= result;
If not frmprincipal.IBSQL.Transaction.InTransaction then
frmprincipal.IBSQL.Transaction.StartTransaction;
frmprincipal.IBSQL.Close;
frmprincipal.IBSQL.SQL.Clear;
frmprincipal.IBSQL.SQL.Add(´UPDATE PRODUTO SET´);
frmprincipal.IBSQL.SQL.Add(´PRECOPROMO = :p1´);
frmprincipal.IBSQL.SQL.Add(´Where BARRAS = ´+QuotedStr(IBQuery49BARRAS.AsString));
frmprincipal.IBSQL.Prepare;
frmprincipal.IBSQL.ParamByName(´p1´).Asstring:= preco;
frmprincipal.IBSQL.ExecQuery;
frmprincipal.IBSQL.Transaction.CommitRetaining;
ibquery49.next;
end;
E gostaria que enquanto fosse lendo esta query49, fosse mostrado uma barra de progresso...Poderiam me dar alguma dica de como fazer isso?
Grato.
Rogerio.
Tenho a rotina abaixo:
ibquery49.close;
ibquery49.open;
ibquery49.first;
while not ibquery49.Eof do
begin
preco:= IBQuery49PV.AsString;
preco:= floattostr(strtofloat(preco) + strtofloat(preco) * strtofloat(edit2.text) / 100);
valor:= strtofloat(preco);
casas:= 2;
result:= floattostrf(valor,ffFixed,18,casas);
preco:= result;
If not frmprincipal.IBSQL.Transaction.InTransaction then
frmprincipal.IBSQL.Transaction.StartTransaction;
frmprincipal.IBSQL.Close;
frmprincipal.IBSQL.SQL.Clear;
frmprincipal.IBSQL.SQL.Add(´UPDATE PRODUTO SET´);
frmprincipal.IBSQL.SQL.Add(´PRECOPROMO = :p1´);
frmprincipal.IBSQL.SQL.Add(´Where BARRAS = ´+QuotedStr(IBQuery49BARRAS.AsString));
frmprincipal.IBSQL.Prepare;
frmprincipal.IBSQL.ParamByName(´p1´).Asstring:= preco;
frmprincipal.IBSQL.ExecQuery;
frmprincipal.IBSQL.Transaction.CommitRetaining;
ibquery49.next;
end;
E gostaria que enquanto fosse lendo esta query49, fosse mostrado uma barra de progresso...Poderiam me dar alguma dica de como fazer isso?
Grato.
Rogerio.
Lrbusch
Curtir tópico
+ 0
Responder
Posts
21/03/2009
Otto
Olá Jovem, depois da facilidade dos novos delphi´s, nao sei bem qual a paleta que ele fica, mas, existe o Gauge e o ProgressBar, voce poderá utilizado enquando esta fazendo seu while not EoF.
após o Open nao precisa da um first, ele ja posiciona o cursor no inicio.
tipo, digamos que seu TProgressBar seja chamado de pb
ai voce faz:
o proccess messages é pra a barra aparecer enquanto ta rolando o tratamento.
espero que seja isso, abraço
após o Open nao precisa da um first, ele ja posiciona o cursor no inicio.
tipo, digamos que seu TProgressBar seja chamado de pb
ai voce faz:
pb.Min := 0; pb.Max := Query.RecordCount; while not Query.EoF do begin // seu código pb.Progress := pb.Progress + 1; QUery.Next; Application.ProcessMessage; end;
o proccess messages é pra a barra aparecer enquanto ta rolando o tratamento.
espero que seja isso, abraço
Responder
Gostei + 0
21/03/2009
Otto
Correção
pb.Min := 0; pb.Max := Query.RecordCount; pb.Position := 0; while not Query.EoF do begin // seu código pb.Position := pb.Position + 1; QUery.Next; Application.ProcessMessage; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)