2

問題:

DataSnap-XEサーバーでZLibCompressionフィルターを使用しています。

クライアントは常に次のエラーにメッセージを表示します。

「Borland.Data.TDBXError:通信フィルターZLibCompressionが登録されていません。サーバーと通信するには、フィルタークラスを登録する必要があります。」

質問1

ZLibCompressionフィルターを登録するにはどうすればよいですか?

編集

質問2

DataExplorerのDatasnap-Connectionをこのサーバーにリンクさせるにはどうすればよいですか?

4

2 に答える 2

5

単位をクライアントの uses 句に追加するだけDbxCompressionFilterです (私の Delphi XE DataSnap コースウェア マニュアルでも説明されていますが、昨年書いた古い DataSnap ホワイト ペーパーにもあると思います)。

DbxCompressionFilter ユニットには、次のコードが既に含まれています。

initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

end.
于 2011-01-05T22:33:47.043 に答える
4

フィルタを登録するには、TTransportFilterFactory.RegisterFilter メソッドを呼び出します。

ドキュメント ( Filtering DataSnap ) は次のように述べています。

フィルタは、TTransportFilterFactory シングルトンに登録する必要があります。フィルタを登録するための推奨される方法は、ユニットの初期化セクションとファイナライズ セクションを使用することですが、ユーザーのアプリケーションの初期化フェーズでコーディングすることもできます。以下は、すぐに使用できる圧縮フィルターを登録するコード スニペットです。
initialization
  TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);

finalization
  TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);

フィルタリングに使用しているクラスの名前の TTansportcompressionFilter を変更します。

于 2011-01-05T20:50:09.473 に答える