Delphi:如何在datasnap-xe服务器中注册ZLibCompression过滤器

时间:2011-01-05 20:40:46

标签: delphi delphi-xe datasnap

问题:

我在DataSnap-XE服务器中使用ZLibCompression过滤器。

客户端始终给出以下错误消息:

“Borland.Data.TDBXError:未注册通讯过滤器ZLi​​bCompression。需要注册过滤器类才能与服务器进行通信”

问题:1

如何注册ZLibCompression过滤器?

修改

问题:2

如何让DataExplorer中的Datasnap-Connection链接到此服务器?

2 个答案:

答案 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.