Delphi: Come registrare il filtro ZLibCompression in un server DataSnap-xe
Domanda
PROBLEMA:
Io sto usando un filtro ZLibCompression server DataSnap-XE.
Il cliente dà sempre l'errore di seguire il messaggio:
"Borland.Data.TDBXError:. Comunicazione filtro ZLibCompression non è registrato esigenze di classe Filter per essere registrati al fine di comunicare con il server"
DOMANDA: 1
Come mi iscrivo filtro ZLibCompression?
Modifica
DOMANDA: 2
Come faccio ad avere il DataSnap-Connection nel DataExplorer creare un collegamento a questo server?
Soluzione
È sufficiente aggiungere l'unità DbxCompressionFilter
alla clausola uses del cliente (come discusso anche nel mio Delphi XE DataSnap didattico manuale, e credo che sia anche nel vecchio DataSnap carta bianca che ho scritto l'anno scorso).
L'unità DbxCompressionFilter contiene già il seguente codice:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
end.
Altri suggerimenti
Chiamare il metodo TTransportFilterFactory.RegisterFilter per registrare un filtro.
Documentazione ( Filtering DataSnap ) dice:
A esigenze di filtro per essere registrati Singleton TTransportFilterFactory. Il metodo consigliato per registrare un filtro attraverso le sezioni dell'unità di inizializzazione e finalizzazione, ma può essere codificato attraverso una fase di inizializzazione in applicazione dell'utente. Qui di seguito è il frammento di codice registra il filtro di compressione a disposizione fuori dalla scatola:
initialization
TTransportFilterFactory.RegisterFilter(TTransportCompressionFilter);
finalization
TTransportFilterFactory.UnregisterFilter(TTransportCompressionFilter);
Cambia TTansportcompressionFilter per il nome della classe che si sta utilizzando per il filtro.