2

问题:

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

客户端总是给出以下错误消息:

“Borland.Data.TDBXError: 通信过滤器 ZLibCompression 未注册。过滤器类需要注册才能与服务器通信”

问题:1

如何注册 ZLibCompression 过滤器?

编辑

问题2

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

4

2 回答 2

5

只需将DbxCompressionFilter单元添加到客户端的uses 子句中(在我的Delphi XE DataSnap 课件手册中也有讨论,我相信它也在我去年写的旧DataSnap 白皮书中)。

DbxCompressionFilter 单元已包含以下代码:

initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

end.
于 2011-01-05T22:33:47.043 回答
4

调用 TTransportFilterFactory.RegisterFilter 方法以注册过滤器。

文档(过滤 DataSnap)说:

过滤器需要注册到 TTransportFilterFactory 单例中。注册过滤器的推荐方法是通过单元初始化和终结部分,但它可以通过用户应用程序中的初始化阶段进行编码。下面是注册开箱即用的压缩过滤器的代码片段:
initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

将 TTansportcompressionFilter 更改为您用于过滤的类的名称。

于 2011-01-05T20:50:09.473 回答