2011-01-05 2 views
2

ПРОБЛЕМА:Delphi: Как зарегистрировать ZLibCompression фильтр в сервере DataSnap-х

Я использую ZLibCompression фильтр DataSnap-ХЕ-сервер.

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

«Borland.Data.TDBXError: Коммуникационный фильтр ZLibCompression не зарегистрирован класс фильтра должен быть зарегистрирован для того, чтобы общаться с сервером.»

ВОПРОС: 1

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

EDIT

ВОПРОС: 2

Как получить DATASNAP-соединения в DataExplorer для связи с этим сервером?

+1

сообщение об ошибке на самом деле следует добавить '» ... - чтобы решить эту проблему, попробуйте добавить к вашему project'' (как на странице DocWiki также не полезно для названия устройства) – mjn

ответ

4

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

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

initialization 
    TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter); 

finalization 
    TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter); 

end. 
4

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

Документация (Filtering DataSnap) говорит:

A filter needs to be registered with the TTransportFilterFactory singleton. The recommended way to register a filter is through the unit initialization and finalization sections, but it can be coded through an initialization phase in the user's application. Below is the code snippet registering the compression filter available out of the box:
initialization 
    TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter); 

finalization 
    TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter); 

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

Смежные вопросы