Delphi: Comment enregistrer le filtre ZLibCompression dans un serveur datasnap-xe
Question
PROBLÈME:
J'utilise un filtre ZLibCompression dans le serveur DataSnap-XE.
Le client donne toujours l'erreur de suivre le message:
« Borland.Data.TDBXError. Filtre Communication ZLibCompression n'est pas enregistré Classe de filtre doit être enregistré afin de communiquer avec le serveur »
QUESTION: 1
Comment puis-je enregistrer filtre ZLibCompression?
EDIT
QUESTION: 2
Comment puis-je obtenir le Datasnap-Connection dans le DataExplorer un lien vers ce serveur?
La solution
Il suffit d'ajouter l'unité de DbxCompressionFilter
à la clause uses du client (comme également discuté dans mon Delphi XE DataSnap manuel courseware, et je crois qu'il est aussi dans le vieux livre blanc DataSnap que j'ai écrit l'année dernière).
L'unité DbxCompressionFilter contient déjà le code suivant:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
end.
Autres conseils
Appelez la méthode TTransportFilterFactory.RegisterFilter afin d'enregistrer un filtre.
Documentation ( Filtrage DataSnap ) dit:
Un filtre doit être enregistré avec le singleton TTransportFilterFactory. La méthode recommandée pour enregistrer un filtre est par l'initialisation de l'unité et les sections de finalisation, mais il peut être codé par une phase d'initialisation dans la demande de l'utilisateur. Voici l'extrait de code enregistrement du filtre de compression disponible hors de la boîte:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
Modifier TTansportcompressionFilter le nom de la classe que vous utilisez pour filtrer.