[OT] Conexão com banco de dados

Delphi

24/09/2005

Na programação .NET as conexões com banco de dados devem ser abertas o mais tarde possível e serem fechadas o mais cedo possivel. Dá para implementar essa ideia em programação para Win32?


Rjun

Rjun

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

24/09/2005

Sim, pelo que sei pelo menos com ADO/OLE DB. Ele já otimiza o restabelecimento de contato com o servidor através do gerenciamento de pooling de conexões, pra isso acontecer não se deve mudar a ConnectionString. É bom pro servidor não manter o connection aberto desnecessariamente, mas qdo não há um recurso parecido com esse aí, fica mais complicado o que decidir. Em aplicações onde a operação é interrupta é mais vantagem deixar o connection ligadão mesmo, já por outro lado, em aplicações web principalmente já é o contrário, mesmo não sendo .NET.


GOSTEI 0
Bon Jovi

Bon Jovi

24/09/2005

Embora obvio, esqueci de mencionar o uso do ClientDataSet em data controls.


GOSTEI 0
Rjun

Rjun

24/09/2005

Alguem mais?


GOSTEI 0
Vinicius2k

Vinicius2k

24/09/2005

Vc teria que analisar o ´custo´ desta prática em suas aplicações.
Como o Bon Jovi disse, as conexões via ADO/OLEDB são reestabelecidas muito rapidamente.

Exemplo disso são as minhas aplicações em ASP, onde abro e fecho a conexão com o Banco de dados (MS-SQL Server) o tempo todo. Mas dependendo da camada de acesso e do SGBD, isto pode ser quase impraticável, como dbExpress + IB/FB no Delphi, por exemplo. No meu caso, processos de reconexão comprometem bastante a performance da aplicação.
Confesso que nunca testei conexões e reconexões nas minhas aplicações Win32 que usam MS-SQL Server com ADO.

Bem, sem falar que *acho* que esta prática só seja possível em 2 camadas, aonde vc tem acesso à conexão. Não trabalho com multi-camadas, mas não vejo como manipular a conexão do lado cliente. A não ser que a estrutura de conexão e reconexão possa ser criada no servidor de aplicação.

T+


GOSTEI 0
POSTAR