源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-06-08 21:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在程序中压缩sql server2000的数据库备份文件的代码
怎样压缩sql server2000的数据库备份文件,像rar一样?小弟有一7m的sql server2000 数据库备份文件,在程序中怎样压缩啊?
[u]复制代码[/u] 代码如下:
procedure TForm1.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 := 'a e:\qwqw.rar e:\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('a e:\zqzq.rar e:\zqzq'),'',SW_show);  ShowMessage('压缩完毕!'); }   
这是一段压缩图片的代码,压缩文件原理相同,只需稍做改动即可。
[u]复制代码[/u] 代码如下:
var    mss: TMemoryStream;    zip: TDeCompressionStream;    zip1: TCompressionStream;    fs : TFileStream;    fBuf: Array[0..16383] of Byte;    flen: Integer;    //从数据库中取出图片    //...写出SQL语句以取得有图片的记录,此处从略    mss := TMemoryStream.Create;    fs := TFileStream.Create('filename.jpg',fmCreate or fmOpenWrite);    try      TBlobField(Que.FieldByName('pic')).SaveToStream(mss);      zip := TDeCompressionStream.Create(fs);      try        flen := zip.Read(fbuf, SizeOf(fBuf));        while flen > 0 do begin          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));        while flen > 0 do begin          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;   
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部