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