怎样在三层结构的系统中对应用程序服务器传出的数据压缩?谢谢了100分 我不知道,不过delphi中有demo的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想,如果你在客户端用了clientdataset,在服务端用了datasetprovider,那你可以在 datasetprovider的OnGetData事件中,对图像进行压缩,然后在ClientDataSet的AfterGetRecords事件中,对图像进行解压。你的想法不错,我觉得我的系统也可以用这样的方法提高效率,能不能告说我你准备用什么方式对数据进行压缩?也许我们可以继续交流一下?用IDataIntercept的方式也不错,有空我也研究一下。 实现IDataIntercept的方法不错.我做过,但只是用于SocketConnection.它只需要实现两个方法,1,数据进, 在里面实现解压.2,数据出, 在里面实现压缩.理解了就简单,具体代码可以从DEMO改写.. 按下面的步骤,就可以了,不用去写代码,记住,它是内置的功能,只要如下配置即可。1:准备工作,先delphi光盘中的\info\extras\zlib\zlib.pas进行编绎,然后copy 到lib路径中,因为要压缩数据,必须要有压缩功能,这个delphi已经自带,它是基于流的方式对接口IDataBlock(TDataBlock实现,其实就是对TMemoryStream的操作)数据进行压缩和解压的。做了这个后,才能进行下面的工作。2:Open \Demos\Midas\Intrcpt\Intrcpt.dpr complier....生成Intrcpt.dll 将Intrcpt.dll copy to System directory,或者你的程序下面。注册它:regsrvr32 Intrcpt.dll记住Intrcpt.dpr的那个GUID3:Server: Open scktsrvr.exe,相信各位都很熟悉那界面,端口(TListbox),Thread Cache Size(TEdit), GUID(TEdit),好,我们要做的事,就是将注册的Intrcpt.dll那个GUID填到这个GUID(TEdit)框框中,只需填自己程序的的那个端口的GUID啊,记住:是自已使用的那个端口。OK,Apply.Client:你写的程序中肯定有TSocketConnection,它有个属性InterceptGUID: string;好了,将Intrcpt.dll的GUID填上去,它是跟Server中的一样的。OK.还有别忘了,Regsrvr32 intrcpt.dll 在你的客户端。不然,程序虽不会raise,但是Server传过来的数据是压缩的.... IDataIntercept接口只为TSocketConnection而做,DCOM不支持,只能自已写,在发送和接收的时候。 delphi如何选中word中的图片,并进行旋转、放大等编辑操作 请问哪有install sheild for delphi 打包工具的下载 pagecontrol的问题,高手来 为什么ClientDataSet的Filter不支持like project options 里怎样设置? 听说TopGrid挺好,哪里有下载啊?? 请问 TPaintBox上的图像保存成BMP时的问题(超出屏幕部分)。 WinOfficer -----> 好东东!!!!!大家快来看!!!!! 奇怪的系统问题 三层结构应用于大型Mis系统的可行性分析及实现方案 D6访问ACCESS2000问题
我做过,但只是用于SocketConnection.它只需要实现两个方法,
1,数据进, 在里面实现解压.
2,数据出, 在里面实现压缩.理解了就简单,具体代码可以从DEMO改写..
1:
准备工作,先delphi光盘中的\info\extras\zlib\zlib.pas进行编绎,然后copy 到lib路径中,因为要压缩数据,必须要有压缩功能,这个delphi已经自带,它是基于流的方式对接口IDataBlock(TDataBlock实现,其实就是对TMemoryStream的操作)数据进行压缩和解压的。做了这个后,才能进行下面的工作。
2:
Open \Demos\Midas\Intrcpt\Intrcpt.dpr
complier....
生成Intrcpt.dll
将Intrcpt.dll copy to System directory,或者你的程序下面。
注册它:regsrvr32 Intrcpt.dll
记住Intrcpt.dpr的那个GUID3:
Server:
Open scktsrvr.exe,相信各位都很熟悉那界面,端口(TListbox),Thread Cache Size(TEdit), GUID(TEdit),好,我们要做的事,就是将注册的Intrcpt.dll那个GUID填到这个GUID(TEdit)框框中,
只需填自己程序的的那个端口的GUID啊,记住:是自已使用的那个端口。OK,Apply.Client:
你写的程序中肯定有TSocketConnection,它有个属性InterceptGUID: string;好了,将Intrcpt.dll的GUID填上去,它是跟Server中的一样的。OK.还有别忘了,Regsrvr32 intrcpt.dll 在你的客户端。不然,程序虽不会raise,但是Server传过来的数据是压缩的.... IDataIntercept接口只为TSocketConnection而做,DCOM不支持,只能自已写,在发送和接收的时候。