Delphi: كيفية تسجيل مرشح Zlibcompression في خادم DataSnap-Xe
سؤال
مشكلة:
أنا أستخدم مرشح Zlibcompression في خادم DataSnap-Xe.
يعطي العميل دائمًا خطأ المتابعة في الرسالة:
"borland.data.tdbxerror: مرشح الاتصالات Zlibcompression غير مسجل. يجب تسجيل فئة التصفية من أجل التواصل مع الخادم"
السؤال رقم 1
كيف يمكنني تسجيل مرشح Zlibcompression؟
تعديل
السؤال 2
كيف يمكنني الحصول على اتصال DataSnap في DataExplorer لربط هذا الخادم؟
المحلول
فقط أضف DbxCompressionFilter
الوحدة إلى شرط استخدام العميل (كما تمت مناقشته أيضًا في دليل برامج Delphi XE DataSnap ، وأعتقد أنه موجود أيضًا في ورقة DataSnap القديمة التي كتبتها العام الماضي).
تحتوي وحدة DBXCompressionFilter بالفعل على الكود التالي:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
end.
نصائح أخرى
اتصل بالطريقة ttransportfilterfactory.registerFilter من أجل تسجيل مرشح.
توثيق (تصفية DataSnap) يقول:
يجب تسجيل مرشح في TtransportFilterfactory Singleton. الطريقة الموصى بها لتسجيل مرشح هي من خلال أقسام تهيئة الوحدة والانتهاء ، ولكن يمكن ترميزها من خلال مرحلة التهيئة في تطبيق المستخدم. فيما يلي مقتطف الكود الذي يسجل مرشح الضغط المتاح خارج المربع:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
قم بتغيير TtansportCompressionFilter لاسم الفصل الذي تستخدمه للتصفية.