Fórum Propriedade Connected do TSQLConnection #15556
10/02/2010
Gostaria de deixar essa propriedade sempre em FALSE quando fechar o sistema, mas nao consigo, ja testei ate SQL.Connected := False, mas fecho o aplicacao e abro meu datamodule a propriedade esta TRUE, entao altero manualmente, rodo a aplicacao, fecho vou verificar no datamodule e esta novamente TRUE.
Como posso resolver isso ?
Mt Obrigado
Posts
11/02/2010
Marcos Iwazaki
Amigo isso acontece pq vc tem em alguma outra tela um DataSet aberto.
Então ele força a abrir novamente o SqlConnection.
Antes de Aplicar keepconnection = false , aleém é claro do Active para False
Antes disso Vc ja foi nas propriedades do seu Server ( SERVIDOR ) e verificou o Numero
de conexões que esta ativa apos o terminio da aplicação
geralmente esta abertura no caso do DbExpress é realizado pelo DataSetProvider
Não estou te encorajando a usar o keepconnection = false tem alguns detalhes
ela é ideal para quando o usuário irá trabalhar de forma desconectada, em um conjunto de dados maior, por um longo período de tempo e não se deve usa-la com recurso de packet records
Tente antes disso , colocar todos os CDS desativados ( Active := False )
Abra-os somente em RumTime e Feche-os no OnClose e tb Verifique o Numero de Conexões Ativas do
Servidor , qnd abre e qnd fecha o Aplicativo e tb em DesignedTime
Perceba que o Simples Fato de Cds.OPen uma query é executada e a conexão é estabelecida
Como vejo o numero de conexoes no servidor ?
Quanto aos CDS abertos realmente tenho muito cuidado com isso, porem o sistema tem muitos CDS em muitos Datamodules, entao corre o risco de algum em determinados momentos ficarem ativos, isso tem um problema muito grande porque o caminho do banco de dados no meu micro (desenvolvimento) é um e no cliente é outro (configurado atraves de um arquivo INI), entao ja viu o problema, ja aconteceu de eu enviar o EXE com o TSQLConnection ativo e o datamodule principal é o primeiro form a ficar ativo, entao retorna erro no cliente porque nao existe o caminho do meu micro. Por essa razao que quero arrumar uma maneira de eu me precaver disso forçando o fechamento do TSQLConnection.
Obrigado
11/02/2010
Thiago Santana
Filipe quando vc for finalizar sua aplicação, feche todos as tabelas ou CDS!
Feche todos os componentes que tem acesso ao banco de dados e por fim defina como false a sua conexão...
O fato de que sua conexão está ficando ativa quando fecha é pq existe algum componente forçando que a conexão fique ativa...
Vê isso aí que deve resolver este problema!
AbraçoO