ClientDataSet x Fechamento de tabelas.

MySQL

Delphi

22/09/2016

Bom dia pessoal,

Estou usando Delphi XE8 Com Mysql 5.1 e os componentes SQLDataSet, DataSerProvider,ClienteDataset e DatSource.

A minha duvida é:

quando uso ClienteDataSet.Open provavelmente ele da um Open no SQLDataset também (me corrija se eu estiver errado).

Para evitar da ficar com as tabelas abertas qual a forma correta? ClienteDataSet.Active := False?

Se eu usar esse comando ele encerra a tabela refenciada ou ela Continua aberta e somente o ClienteDataSet é fechado?
Casa

Casa

Curtidas 0

Respostas

Carlos Faria

Carlos Faria

22/09/2016

Olá
active é um metodo diferente de open Ex

If not clientdataset.active then
clientdataset.open ; // verifica se o cliente está ativo se não está abre porem active e open são metodos diferentes

para fechar é o close mesmo ex :

ClientDataset.close ;
//seu codigo aqui
clientdataset.open ;
GOSTEI 0
Carlos Faria

Carlos Faria

22/09/2016

Outra observação o clientDataset é um componente de memoria pode fazer como citei acima que não havera erros. Ele ira carregar para a memoria os dados somente quando chamado
GOSTEI 0
Casa

Casa

22/09/2016

Mas a minha preocupacao é a tabela, se eu der um close no clientdataset a tabela tb sera fechada? Pq se eu n sair fechando as tabelas ficarei com muitas conexões abertas no servidor e vai sobrecarregar ele
GOSTEI 0
Carlos Faria

Carlos Faria

22/09/2016

Amigo vá no envento on destroy ou onclose do form e :

ClientDataSet1.EmptyDataSet ; //para limpar todos os dados carregados
ClientDataSet1.close ; para fechar o client
Faça isso em todos os forms e pronto
GOSTEI 0
POSTAR