Pergunta

PROBLEMA:

Estou usando um filtro ZLibCompression no servidor DataSNAP-XE.

O cliente sempre dá o erro a seguir a mensagem:

"Borland.data.tdbxerror: o filtro de comunicação ZlibCompression não está registrado. A classe de filtro precisa ser registrada para se comunicar com o servidor"

QUESTÃO 1

Como faço para registrar o filtro ZlibCompression?

EDITAR

QUESTÃO 2

Como faço para obter a conexão de dados do DataSNAP no DataExplorer para vincular a este servidor?

Foi útil?

Solução

Basta adicionar o DbxCompressionFilter unidade para a cláusula de uso do cliente (como também discutido no meu manual de cursos Delphi Xe DataSNAP, e acredito que também está no antigo DataSnap White Paper que escrevi no ano passado).

A unidade DBXCompressionFilter já contém o seguinte código:

initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

end.

Outras dicas

Ligue para o método TTransportFilterFactory.RegisterFilter para registrar um filtro.

Documentação (Filtrando DataSnap) diz:

Um filtro precisa ser registrado no TTransportFilterFactory Singleton. A maneira recomendada de registrar um filtro é através das seções de inicialização e finalização da unidade, mas pode ser codificada através de uma fase de inicialização no aplicativo do usuário. Abaixo está o snippet de código que registra o filtro de compressão disponível na caixa:
initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

Altere o TTANSPORTCOMPRESSFILTER para o nome da classe que você está usando para filtrar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top