Delphi: Как зарегистрировать фильтр ZlibCompression в сервере DataSnap-Xe
Вопрос
ПРОБЛЕМА:
Я использую фильтр ZlibCompression в сервере DataSnap-Xe.
Клиент всегда дает ошибку следуйте сообщение:
«Borland.data.tdbxeRror: фильтр связи zlibcompression не зарегистрирован. Класс фильтра должен быть зарегистрирован для связи с сервером»
ВОПРОС 1
Как зарегистрировать фильтр zlibcompression?
РЕДАКТИРОВАТЬ
ВОПРОС 2
Как получить DataSnap-соединение в DataExplorer, чтобы ссылаться на этот сервер?
Решение
Просто добавьте DbxCompressionFilter
Агрегат к пункту использования клиента (а также обсуждается в My Delphi XE DataSnap Manualware, и я считаю, что это также в старой белой бумаге DataSnap White, которую я написал в прошлом году).
Блок DBXCompressionFilter уже содержит следующий код:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
end.
Другие советы
Позвоните в метод TtransportfilterFactory.registerfilter, чтобы зарегистрировать фильтр.
Документация (Фильтрация DataSnap) говорит:
Фильтр должен быть зарегистрирован в TtransportfilterFactory Singleton. Рекомендуемый способ зарегистрировать фильтр проникает через разделы инициализации агрегата и поисках, но он может быть закодирован через фазу инициализации в приложении пользователя. Ниже приведена ли фрагмент кода, регистрирующий фильтр сжатия, доступный из коробки:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
Измените TTANSPortCompressionFilter для имени класса, который вы используете для фильтрации.