问题:
我在DataSnap-XE服务器中使用ZLibCompression过滤器。
客户端始终给出以下错误消息:
“Borland.Data.TDBXError:未注册通讯过滤器ZLibCompression。需要注册过滤器类才能与服务器进行通信”
问题:1
如何注册ZLibCompression过滤器?
修改
问题:2
如何让DataExplorer中的Datasnap-Connection链接到此服务器?
答案 0 :(得分:4)
调用TTransportFilterFactory.RegisterFilter方法以注册过滤器。
文档(Filtering DataSnap)说:
需要在TTransportFilterFactory单例中注册过滤器。注册过滤器的推荐方法是通过单元初始化和完成部分,但可以通过用户应用程序中的初始化阶段进行编码。 下面是注册压缩过滤器的代码片段:开箱即用:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
更改TTansportcompressionFilter以获取您要用于过滤的类的名称。
答案 1 :(得分:4)
只需将DbxCompressionFilter
单元添加到客户端的uses子句中(在我的Delphi XE DataSnap课件手册中也有讨论,我相信它也出现在我去年写的旧版DataSnap白皮书中)。 / p>
DbxCompressionFilter单元已包含以下代码:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
end.