Delphi: Как зарегистрировать фильтр ZLibCompression на сервере datasnap-xe - PullRequest
2 голосов
/ 05 января 2011

ПРОБЛЕМА:

Я использую фильтр ZLibCompression на сервере DataSnap-XE.

Клиент всегда выдает следующее сообщение об ошибке:

"Borland.Data.TDBXError: Фильтр связи ZLibCompression не зарегистрирован. Для связи с сервером необходимо зарегистрировать класс фильтра"

ВОПРОС: 1

Как зарегистрировать фильтр ZLibCompression?

РЕДАКТИРОВАТЬ

ВОПРОС: 2

Как сделатьЯ получаю Datasnap-Connection в DataExplorer для связи с этим сервером?

Ответы [ 2 ]

4 голосов
/ 06 января 2011

Просто добавьте модуль DbxCompressionFilter к предложению использования клиента (как также обсуждалось в моем руководстве к учебному пособию по Delphi XE DataSnap, и я считаю, что оно также содержится в старой белой книге DataSnap, которую я написал в прошлом году).

Блок DbxCompressionFilter уже содержит следующий код:

initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

end.
4 голосов
/ 05 января 2011

Вызовите метод TTransportFilterFactory.RegisterFilter, чтобы зарегистрировать фильтр.

Документация ( Фильтрация DataSnap ) гласит:

Фильтр должен быть зарегистрирован в синглтоне TTransportFilterFactory. Рекомендуемый способ регистрации фильтра - через разделы инициализации и завершения устройства, но его можно закодировать на этапе инициализации в приложении пользователя. Ниже приведен фрагмент кода, который регистрирует фильтр сжатия, доступный из коробки:
initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

Измените TTansportcompressionFilter на имя класса, который вы используете для фильтрации.

...