TFDJSONDataSetsWriter liberando a TFDQuery e TFDConnection

09/02/2015

0

Pessoal quando adicionamos um Query dentro reflection do Json e depois tentamos dar um free nos objetos necessários para a consulta, não funciona, pois Query fca presa no metodo de adição, minha dúvia é como liberar essa query, sem afetar ListAdd ?

Código
TFDJSONDataSetsWriter.ListAdd(Result, sObjQry);
Eduardo Junqueira

Eduardo Junqueira

Responder

Post mais votado

07/12/2015

function TPesquisarDao.lerFDJSON(pFiltro: string): TFDJSONDataSets;
begin
qry1 := TFDQuery.Create(nil);
qry1.Connection := conn;

Result := TFDJSONDataSets.Create;
try
qry1.Active := false;
qry1.SQL.Text := pFiltro;
TFDJSONDataSetsWriter.ListAdd(Result, qry1);

finally
//qry1.Close; // nao pode destruir porque ta fazendo reflection lasco !!
//FreeAndNil(qry1); // vai dar vazamento de memoria se nao destruir
end;
end;

Jair Sakai.

Jair Sakai.
Responder

Mais Posts

07/12/2015

Jair Sakai.

Eduardo, como vc resolveu esse problema, também estou nesse impasse.
Responder

27/03/2017

Rondinele

Bom dia, como foi resolvido?
Responder

27/03/2017

Eduardo Junqueira

Mudei para Xdata da TMS e parei de usar datasnap, essa foi soluçã
Responder

27/07/2017

Nelson Santos

Recomendo no lado cliente, colocar um chamada a um método que no servidor feche a query. E também pode ser feito algo que periodicamente feche essas querys abertas, isso por ser feito antes de abrir as mesmas, já que para cada sessão há um modulo aberto em separado em memória, não afetando os demais.
Responder

31/07/2017

Júlio Ferreira

Caro amigo,

Exatamente como no seu exemplo, o que está escrito é a forma correta de usar o TFDJSONDataSetsWriter. Não precisa finalizar os objetos no lado servidor. A própria implementação da classe TFDJSONDataSetsWriter faz esse trabalho, depois que o cliente deixa de usar o objeto solicitado.

Além disso, sem contar, o LifeCycle do server tbm faz semelhante trabalho. Apenas se você configurou seu server pra Server, invocation ou session sempre irão destruir todos os objetos após o término da "sessão.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar