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

YuKi_Cky

YuKi_Cky

2016-02-19 11:47

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的在程序中压缩sql server2000的数据库备份文件的代码,过去的都会过去,迎接崭新的开始,释放更美好的自己。
怎样压缩sql server2000的数据库备份文件,像rar一样?小弟有一7m的sql server2000
数据库备份文件,在程序中怎样压缩啊?
代码如下:

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('压缩完毕!'); }   

这是一段压缩图片的代码,压缩文件原理相同,只需稍做改动即可。
代码如下:

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;   
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
在程序中压缩sql server2000的数据库备份文件的代码

从SQL备份文件中导入现存数据库中

SQLServer
从SQL备份文件中导入现存数据库中

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server2000数据库文件损坏时如何恢复

SQLServer
SQL Server2000数据库文件损坏时如何恢复

SQL SERVER 2000 数据库备份与还原

SQLServer
SQL SERVER 2000 数据库备份与还原

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server2000数据库系统表的应用

编程语言 网络编程
SQL Server2000数据库系统表的应用

SQL备份并压缩备份文件

SQLServer
SQL备份并压缩备份文件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

自己动手修复U盘

自己动手修复U盘

数据库分页存储过程代码

数据库分页存储过程代码
下拉加载更多内容 ↓