在程序中压缩sql server2000的数据库备份文件的代码
发布日期:2022-02-04 10:58 | 文章来源:CSDN
数据库备份文件,在程序中怎样压缩啊?
复制代码 代码如下:
procedureTForm1.Button2Click(Sender:TObject);
var
SHExecInfo:SHELLEXECUTEINFO;
begin
SHExecInfo.cbSize:=sizeof(SHELLEXECUTEINFO);
SHExecInfo.fMask:=SEE_MASK_NOCLOSEPROCESS;
SHExecInfo.Wnd:=Handle;
SHExecInfo.lpVerb:=nil;
SHExecInfo.lpFile:='WinRAR.exe';
SHExecInfo.lpParameters:='ae:\qwqw.rare:\qwqw';
SHExecInfo.lpDirectory:=nil;
SHExecInfo.nShow:=SW_SHOW;
SHExecInfo.hInstApp:=Handle;
ShellExecuteEx(@SHExecInfo);
WaitForSingleObject(SHExecInfo.hProcess,INFINITE);
CloseHandle(SHExecInfo.hProcess);
ShellExecute(application.MainForm.Handle,'open','winrar.exe',PChar('ae:\zqzq.rare:\zqzq'),'',SW_show);
ShowMessage('压缩完毕!');}
这是一段压缩图片的代码,压缩文件原理相同,只需稍做改动即可。
复制代码 代码如下:
var
mss:TMemoryStream;
zip:TDeCompressionStream;
zip1:TCompressionStream;
fs:TFileStream;
fBuf:Array[0..16383]ofByte;
flen:Integer;
//从数据库中取出图片
//...写出SQL语句以取得有图片的记录,此处从略
mss:=TMemoryStream.Create;
fs:=TFileStream.Create('filename.jpg',fmCreateorfmOpenWrite);
try
TBlobField(Que.FieldByName('pic')).SaveToStream(mss);
zip:=TDeCompressionStream.Create(fs);
try
flen:=zip.Read(fbuf,SizeOf(fBuf));
whileflen>0dobegin
fs.Write(fbuf,flen);
flen:=zip.Read(fbuf,SizeOf(fBuf));
end;
finally
FreeAndNil(zip);
end;
finally
mss.Free;
fs.Free;
end;
//将文件filename.jpg中的图片保存到数据库
//...写出SQL语句,打开Que,并定位到要保存图片的记录,此处从略
fs:=TFileStream.Create('filename.jpg',fmOpenRead);
mss:=TMemoryStream.Create;
try
zip1:=TCompressionStream.Create(clDefault,mss);
try
flen:=fs.Read(fbuf,SizeOf(fBuf));
whileflen>0dobegin
zip1.Write(fbuf,flen);
flen:=fs.Read(fbuf,SizeOf(fBuf));
end;
//保存到数据库
TBlobField(Que.FieldByName('pic')).LoadFromStream(mss);
Que.UpdateBatch();
//...
finally
zip1.Free;
end;
finally
fs.Free;
mss.Free;
end;
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
相关文章