要把东西放到数据库里(非本地数据库)
超过 4M 就会断开连接.
超过 4M 就会断开连接.
解决方案 »
- 很急请大家帮忙,谢谢!
- 在DLL中有没有办法访问加载它的主程序的主FORM的成员?
- ServerSocket怎样获得当前ClientSocket连接阿?并且根据IP决定拒绝该连接
- 编程语言的异同及选择
- 一个完整的treeview,想根据不同权限登陆的情况显示不同的节点,怎么做呢?
- 怎样做追加打印--像银行存折,且一次追加可能不止一条记录?
- 有谁知道这是什么主板?(高分赠送)
- 谁能介绍检测内存泄漏的软件?
- 我现在想开一家公司,手头有几个项目,听听大家意见还有什么行业或项目有前景?
- ★★★★★DELPHI→一个有水平的问题--起码我认为是这样
- 如何查询日期SQL语句
- 怎么在DBGrid的一列数据中,添加货币单位“元”
insert 表 (fields,...) values (数据,'很大的数据',...)?
3.5M大小的可以放进去. 5M的就会出现.连接失败..
所以想到了压缩.
unit zipfunc;
{
压缩解压单元
作者:fontain 日期:2002.2.9
功能:
compressstream:从指定流中压缩内容,结果存到原流
uncompressfile: 从指定流压,结果存到指定流
使用单元:zlib,classes,Sysutils;
}
interface
uses zlib,classes,Sysutils;
Function ZipStream(var CompressedStream: TMemoryStream):boolean;
function UnZipStream(var res: TMemoryStream):boolean;
implementation
Function ZipStream(var CompressedStream: TMemoryStream):boolean;
var
SourceStream: TCompressionStream;
DestStream: TMemoryStream;
Count: Integer;
Begin
//获得数据流的原始尺寸
result:=false;
Count := CompressedStream.Size;
DestStream := TMemoryStream.Create;
SourceStream:=TCompressionStream.Create(clDefault, DestStream);
Try
//SourceStream中保存着原始的数据流
CompressedStream.SaveToStream(SourceStream);
//将原始数据流进行压缩, DestStream中保存着压缩后的数据流
SourceStream.Free;
with CompressedStream do begin
Clear;
//写入原始数据流尺寸
WriteBuffer(Count, SizeOf(Count));
//写入经过压缩的数据流
CopyFrom(DestStream, 0);
//恢复流指针
Position:=0;
end;
result:=true;
finally
DestStream.Free;
end;
end;
function UnZipStream(var res: TMemoryStream):boolean;
//解压缩文件数据流
var
SourceStream: TDecompressionStream;
Buffer: PChar;
Count: Integer;
src:TmemoryStream;
Begin
result:=false;
//从被压缩的数据流中读出原始数据流尺寸
res.ReadBuffer(Count, SizeOf(Count));
//根据数据流尺寸大小为将要读入的原始数据流分配内存块
GetMem(Buffer, Count);
SourceStream := TDecompressionStream.Create(res);
Try
//将被压缩的数据流解压缩,然后存入 Buffer内存块中
SourceStream.readBuffer(Buffer^, Count);
//将数据流保存至res流中
res.Clear ;
res.writeBuffer(Buffer^, Count);
res.Position := 0;//复位流指针
result:=true;
finally
FreeMem(Buffer);
end;
end;
end.