Atualizador
ola pessoal, eu to fazendo um atualizador de banco, e to com um probleminha nesse codigo abaixo, pois nao esta aparecendo a barra de progresso, aparece processando, mas nao mostra o progresso no gauge.
segue codigo abaixo:
if (rgopcao.ItemIndex = 2) or (rgopcao.ItemIndex = 3) then
begin
gauge1.MinValue := 0;
gauge1.MaxValue := tblduplicat_origem.RecordCount;
gauge1.Progress := 0;
label5.Caption := ´. . . Atualizando Arquivo de faturas . . .´;
fatualizacao.update;
tblduplicat_destino.Close;
tblduplicat_destino.SQL.Clear;
tblduplicat_destino.SQL.Text := ´select * from duplicat ´ +
´where cod_emp = ´´ + m_cod_emp + ´´ ´ +
´order by duplicat_codcli,numero,dataemis´;
tblduplicat_destino.ExecSql;
i := 0;
for i := 1 to tblduplicat_origem.RecordCount do
begin
if not tblduplicat_destinoDUPLICAT_CODCLI.IsNull then
begin
if not tblduplicat_destino.Locate(´duplicat_codcli;numero;dataemis´, VarArrayOf([
tblduplicat_origemDUPLICAT_CODCLI.asstring, tblduplicat_origemNUMERO.asstring,
tblduplicat_origemDATAEMIS.asdatetime]), []) then
tblduplicat_destino.Append
else
tblduplicat_destino.Edit;
while not (tblduplicat_destino.Eof) and (tblduplicat_destinoDUPLICAT_CODCLI.AsString = tblduplicat_origemDUPLICAT_CODCLI.AsString)
and (tblduplicat_destinoNUMERO.AsString = tblduplicat_origemNUMERO.AsString)
and (tblduplicat_destinoDATAEMIS.AsString = tblduplicat_origemDATAEMIS.AsString) do
begin
if not (tblduplicat_destino.State in [DsEdit, DsInsert]) then tblduplicat_destino.Edit;
x := 0;
for x := 0 to tblduplicat_origem.FieldCount - 1 do
if x <> 14 then
tblduplicat_destino.Fields.Fields[x].value := tblduplicat_origem.Fields.Fields[x].value;
tblduplicat_destino.Post;
end;
tblduplicat_destino.Next;
end;
tblduplicat_origem.Next;
gauge1.Progress := gauge1.Progress + 1;
end;
end;
gauge1.MinValue := 0;
gauge1.MaxValue := 100;
gauge1.Progress := 0;
label5.Caption := ´. . . FIM DE OPERAÇÃO . . .´;
fatualizacao.update;
tblparametros.Close;
origem.Disconnect;
if not tblduplicat_destinoDUPLICAT_CODCLI.IsNull then
destino.Disconnect;
medtorigem.Clear;
medtdestino.Clear;
btnfechar.SetFocus;
to usando firebird + ibo
valeu pessoal
segue codigo abaixo:
if (rgopcao.ItemIndex = 2) or (rgopcao.ItemIndex = 3) then
begin
gauge1.MinValue := 0;
gauge1.MaxValue := tblduplicat_origem.RecordCount;
gauge1.Progress := 0;
label5.Caption := ´. . . Atualizando Arquivo de faturas . . .´;
fatualizacao.update;
tblduplicat_destino.Close;
tblduplicat_destino.SQL.Clear;
tblduplicat_destino.SQL.Text := ´select * from duplicat ´ +
´where cod_emp = ´´ + m_cod_emp + ´´ ´ +
´order by duplicat_codcli,numero,dataemis´;
tblduplicat_destino.ExecSql;
i := 0;
for i := 1 to tblduplicat_origem.RecordCount do
begin
if not tblduplicat_destinoDUPLICAT_CODCLI.IsNull then
begin
if not tblduplicat_destino.Locate(´duplicat_codcli;numero;dataemis´, VarArrayOf([
tblduplicat_origemDUPLICAT_CODCLI.asstring, tblduplicat_origemNUMERO.asstring,
tblduplicat_origemDATAEMIS.asdatetime]), []) then
tblduplicat_destino.Append
else
tblduplicat_destino.Edit;
while not (tblduplicat_destino.Eof) and (tblduplicat_destinoDUPLICAT_CODCLI.AsString = tblduplicat_origemDUPLICAT_CODCLI.AsString)
and (tblduplicat_destinoNUMERO.AsString = tblduplicat_origemNUMERO.AsString)
and (tblduplicat_destinoDATAEMIS.AsString = tblduplicat_origemDATAEMIS.AsString) do
begin
if not (tblduplicat_destino.State in [DsEdit, DsInsert]) then tblduplicat_destino.Edit;
x := 0;
for x := 0 to tblduplicat_origem.FieldCount - 1 do
if x <> 14 then
tblduplicat_destino.Fields.Fields[x].value := tblduplicat_origem.Fields.Fields[x].value;
tblduplicat_destino.Post;
end;
tblduplicat_destino.Next;
end;
tblduplicat_origem.Next;
gauge1.Progress := gauge1.Progress + 1;
end;
end;
gauge1.MinValue := 0;
gauge1.MaxValue := 100;
gauge1.Progress := 0;
label5.Caption := ´. . . FIM DE OPERAÇÃO . . .´;
fatualizacao.update;
tblparametros.Close;
origem.Disconnect;
if not tblduplicat_destinoDUPLICAT_CODCLI.IsNull then
destino.Disconnect;
medtorigem.Clear;
medtdestino.Clear;
btnfechar.SetFocus;
to usando firebird + ibo
valeu pessoal
L3gion4rio
Curtidas 0
Respostas
Felipeaj
13/04/2007
Depois diso:
Coloque:
gauge1.Progress := gauge1.Progress + 1;
Coloque:
Application.ProcessMessages;
GOSTEI 0
L3gion4rio
13/04/2007
nao deu muito certo nao....a logica ai esta certa??
GOSTEI 0
L3gion4rio
13/04/2007
nao deu muito certo nao....a logica do codigo que passei esta certa??
GOSTEI 0
Briciosm
13/04/2007
Dei uma olhada meio por cima no seu código e acredito que esteja tudo certo.
Não sei o que pode estar errado....
mas tente fazer o seguinte:
Após dar o comando para aumentar o valor do progresso coloque mais um comando: gauge1.update;
Até mais,
Não sei o que pode estar errado....
mas tente fazer o seguinte:
Após dar o comando para aumentar o valor do progresso coloque mais um comando: gauge1.update;
Até mais,
GOSTEI 0
L3gion4rio
13/04/2007
parece que ele nao esta dando o append quando nao existe um registro no outro banco, a logica desse append ai sera que esta certa?? por que ele nao esta inserindo os registros no outro banco.
GOSTEI 0