Fórum Lentidão na Hora de Gravar Arquivo - Interbase 6 #271444
08/03/2005
0
Eae Filhotes...
Estou trabalhando com Delphi 6 Interbase 6. No meu sistema de ´contas a receber´ quando um cliente paga a conta, automaticamente o é geradas estas entradas de registro; um ´Recibo´, um ´Lançamento no caixa´, um ´Novo Cupom´, uns ´Novos Itens do Cupom´,as entradas de registro são feitas assim:
//exemplo do ´Lançamento do Caixa´
With Dm1.TbItCaixa do
begin
Append;
FieldbyName(´CODCAIXA´).AsString := Label19.Caption;
With IBSQL5 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT MAX(NUMITCAIXA)AS CODIGO FROM ITCAIXA´);
SQL.Add(´WHERE CODCAIXA = ´´´ +Label19.Caption + ´´´´);
ExecQuery;
Dm1.TbItCaixa.FieldbyName(´NUMITCAIXA´).AsInteger :=
IBSQL5.FieldbyName(´CODIGO´).AsInteger + 1;
Close;
end;
FieldbyName(´DATAITCAIXA´).AsDateTime := Date;
FieldbyName(´HORAITCAIXA´).AsDateTime := Time;
FieldbyName(´TIPOITCAIXA´).AsString := ´RECTO´;
FieldbyName(´HISTORICOCAIXA´).AsString:=´RECTO - RECIBO N. ´+
Dm1.TbRecibo.FieldbyName(´NUMRECIBO´).AsString+´ DO CLIENTE ´+
Edit2.Text;
FieldbyName(´SAIDAITCAIXA´).AsFloat := 0.00;
FieldbyName(´ENTRADAITCAIXA´).AsFloat := Dm1.TbRecibo.FieldbyName(´VRRECIBO´).AsFloat;
With IBSQL3 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT SUM(ENTRADAITCAIXA), SUM(SAIDAITCAIXA) FROM ITCAIXA´);
SQL.Add(´WHERE CODCAIXA = ´´´ +Label19.Caption+ ´´´´);
ExecQuery;
saldo := Fields[0].AsFloat-Fields[1].AsFloat;
Close;
end;
FieldbyName(´SALDOITCAIXA´).AsFloat := saldo + Dm1.TbRecibo.FieldbyName(´VRRECIBO´).AsFloat;
Post;
Refresh;
end;
... fora a impressão do recibo e do novo cupom com ..Whileln..
Este processamento esta muito LENTO.
Gostaria de saber...
>>> O QUE ESTOU FAZENDO DE ERRADO!!! <<<<
douglas-altonia
Valeu!
Estou trabalhando com Delphi 6 Interbase 6. No meu sistema de ´contas a receber´ quando um cliente paga a conta, automaticamente o é geradas estas entradas de registro; um ´Recibo´, um ´Lançamento no caixa´, um ´Novo Cupom´, uns ´Novos Itens do Cupom´,as entradas de registro são feitas assim:
//exemplo do ´Lançamento do Caixa´
With Dm1.TbItCaixa do
begin
Append;
FieldbyName(´CODCAIXA´).AsString := Label19.Caption;
With IBSQL5 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT MAX(NUMITCAIXA)AS CODIGO FROM ITCAIXA´);
SQL.Add(´WHERE CODCAIXA = ´´´ +Label19.Caption + ´´´´);
ExecQuery;
Dm1.TbItCaixa.FieldbyName(´NUMITCAIXA´).AsInteger :=
IBSQL5.FieldbyName(´CODIGO´).AsInteger + 1;
Close;
end;
FieldbyName(´DATAITCAIXA´).AsDateTime := Date;
FieldbyName(´HORAITCAIXA´).AsDateTime := Time;
FieldbyName(´TIPOITCAIXA´).AsString := ´RECTO´;
FieldbyName(´HISTORICOCAIXA´).AsString:=´RECTO - RECIBO N. ´+
Dm1.TbRecibo.FieldbyName(´NUMRECIBO´).AsString+´ DO CLIENTE ´+
Edit2.Text;
FieldbyName(´SAIDAITCAIXA´).AsFloat := 0.00;
FieldbyName(´ENTRADAITCAIXA´).AsFloat := Dm1.TbRecibo.FieldbyName(´VRRECIBO´).AsFloat;
With IBSQL3 do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT SUM(ENTRADAITCAIXA), SUM(SAIDAITCAIXA) FROM ITCAIXA´);
SQL.Add(´WHERE CODCAIXA = ´´´ +Label19.Caption+ ´´´´);
ExecQuery;
saldo := Fields[0].AsFloat-Fields[1].AsFloat;
Close;
end;
FieldbyName(´SALDOITCAIXA´).AsFloat := saldo + Dm1.TbRecibo.FieldbyName(´VRRECIBO´).AsFloat;
Post;
Refresh;
end;
... fora a impressão do recibo e do novo cupom com ..Whileln..
Este processamento esta muito LENTO.
Gostaria de saber...
>>> O QUE ESTOU FAZENDO DE ERRADO!!! <<<<
douglas-altonia
Valeu!
Douglasaltonia
Curtir tópico
+ 0
Responder
Posts
14/03/2005
Ricardo.vano
Você está usando Table? Query?
Experimente substituí-los pelo componente IBDataSet
Experimente substituí-los pelo componente IBDataSet
Responder
Gostei + 0
14/03/2005
Faelcavalcanti
Cara tu tais fazendo muita coisa, tipow fechando e abrindo muitas tabelas, salvando, utilizando refresh.
Para ficar mais fácil, era bom agente saber quantos registros totais têm nesta tabela independente de filtro. Sei que possa até não fazer sentido, mas tentasse depurar também que parte do código é que deixa mais lento. Outra pergunta também é sobre o componente que estais utilizando é o ´TIBQuery´ ?
Para ficar mais fácil, era bom agente saber quantos registros totais têm nesta tabela independente de filtro. Sei que possa até não fazer sentido, mas tentasse depurar também que parte do código é que deixa mais lento. Outra pergunta também é sobre o componente que estais utilizando é o ´TIBQuery´ ?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)