[firebase-br] Dica para fechar a Transacao de Leitura do DBExpress

Pha-Lista lista em pha.com.br
Qua Jun 22 07:25:05 -03 2005


Sim e Nao,

KeepConnection = False, fica desconectado e conectando a todo momento (sempre que for possivel fechar a conexao), isso pode ocasionar perda de performance.

No exemplo voce pode determinar apartir de quanto tempo comecara as tentativas de fechar a conexao.

No exemplo o evento timer e disparado a cada 5 segundos, mais as tentativas de fechar a conexao comecara apos 30 minutos.

PHA
Nova Odessa / SP - Brazil

-----Mensagem original-----
From: "Francisco Thiago" jeandeadlucky em yahoo.com.br
Date: Tue, 21 Jun 2005 17:56:54 -0300
To: "FireBase" lista em firebase.com.br
Subject: Re: [firebase-br] Dica para fechar a Transacao de Leitura do DBExpress

> Grande dica PHA.....
> 
> Mas não teria o mesmo efeito de um KeepConnection = False?
> 
> []'s
> 
> Francisco Thiago de Almeida
> Enter&Plug Sistemas
> Divisão: Desenvolvimento / Banco de dados
> Franca - SP
> 
> ----- Original Message ----- 
> From: "Pha-Lista" <lista em pha.com.br>
> To: <lista em firebase.com.br>
> Sent: Tuesday, June 21, 2005 3:03 PM
> Subject: [firebase-br] Dica para fechar a Transacao de Leitura do DBExpress
> 
> 
> >
> > Internamente o DBExpress abre uma transacao para leitura se nao hourve 
> > nenhuma iniciada explicitamente, esta transacao fica em aberto (pelo meno 
> > no driver do Delphi 6), se estiver tendo problemas com perfomance por 
> > causa desta transacao tente utilizar o exemplo abaixo para fechar a 
> > conexao e com isso a transacao, quando for necessario o proprio DBExpress 
> > abrira novamente a conexao.
> >
> > Cuidado com a propriedade PacketRecords > 0, pois o ClientDataSet nao 
> > fechara o SQLDataSet ate que todos os registros tenham sido carregados 
> > imposibilitando o fechamento da transação, se for necessario crie um 
> > metodo dos ClientDataSets
> >
> > serem carregado em segundo plano ao poucos para isso voce podera utilizar 
> > um Action, um Timer ou usar o evneto OnIdle do TApplication.
> >
> >
> > procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
> > begin
> >  IniciadaEm := Now; // Variavel definida no Form ou Data Modulo da Conexao
> >  Timer1.Interval := 5000; // checa a cada 5 segundos
> >  Timer1.Enabled := True;
> > end;
> >
> > procedure TForm1.SQLConnection1AfterDisconnect(Sender: TObject);
> > begin
> >  IniciadaEm := 0;
> >  Timer1.Enabled := False;
> > end;
> >
> > procedure TForm1.Timer1Timer(Sender: TObject);
> > var
> >  I: Integer;
> > begin
> >  // Verifica se a conexao pode ser fechada
> >  if (IniciadaEm <> 0) and
> >     // Configurei para tem tentar fechar depois de 30 minutos
> >     (DateUtils.MinutesBetween(Now, IniciadaEm) > 30) and
> >     (SQLConnection1.Connected) and
> >     (SQLConnection1.ConnectionState = csStateOpen) and
> >     (not SQLConnection1.InTransaction) then begin
> >
> >    // Verifica se nao ha nenhum SQLDataSet aberto
> >    for I := 0 to SQLConnection1.DataSetCount - 1 do
> >      if (SQLConnection1.DataSets[I].State <> dsInActive) then Exit;
> >
> >      SQLConnection1.Close;
> >   end;
> > end;
> >
> >
> > Existem outra formas mais eficientes, mais os componentes ou o driver 
> > precisariam ser alterados.
> >
> > Para quem utiliza o DBExpress e o Midas, existe um site muito interessante 
> > www.distribucon.com
> >
> > Pode ser que no Delphi 2005, isso ja esteja corrigido.
> >
> > PHA
> > Nova Odessa / SP - Brazil
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço 
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> >
> > -- 
> > No virus found in this incoming message.
> > Checked by AVG Anti-Virus.
> > Version: 7.0.323 / Virus Database: 267.7.9/23 - Release Date: 20/06/2005
> >
> > 
> 
> 
> 	
> 	
> 		
> _______________________________________________________ 
> Yahoo! Acesso Grátis - Internet rápida e grátis. 
> Instale o discador agora! http://br.acesso.yahoo.com/
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista