在程序中压缩sql server2000的数据库备份文件的代码

前端之家收集整理的这篇文章主要介绍了在程序中压缩sql server2000的数据库备份文件的代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

怎样压缩sqlserver2000的数据库备份文件,像rar一样?小弟有一7m的sqlserver2000
数据库备份文件,在程序中怎样压缩啊?
<div class="codetitle"><a style="CURSOR: pointer" data="64396" class="copybut" id="copybut64396" onclick="doCopy('code64396')"> 代码如下:

<div class="codebody" id="code64396">
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('压缩完毕!');}

这是一段压缩图片代码,压缩文件原理相同,只需稍做改动即可。
<div class="codetitle"><a style="CURSOR: pointer" data="56110" class="copybut" id="copybut56110" onclick="doCopy('code56110')"> 代码如下:
<div class="codebody" id="code56110">
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;

原文链接:https://www.f2er.com/mssql/64552.html

猜你在找的MsSQL相关文章