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

2016-02-19 11:47 15 1 收藏

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

【 tulaoshi.com - 编程语言 】

怎样压缩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;   

来源:http://www.tulaoshi.com/n/20160219/1598602.html

延伸阅读
标签: SQLServer
      问:请问在SQL Server 2000中,我如何对数据库进行备份,并且我想以压缩的方式备份的话我应该如何做? 答:SQLSERVER2000 备份 例1:(备份) 1 use master 2 declare @path='c:aazy.bak' 3 backup database zy to 4 disk=@path with noinit 说明: 1 使用系统库 2 ...
标签: SQLServer
在给各合作学校安装应用系统过程中,发现学校里的SQL SERVER 2000 数据库 损坏了重装后都发生了同样的问题,那就是安装SQL SERVER数据库不成功。原因:即使你通过控制面板里的“添加/删除程序” 正常的卸载SQL SERVER数据库,但是,SQL SERVER还是没有完全卸载干净,还需要手工进行一些操作。因此重新安装不成功,很多人只好重装系统解决。经过...
标签: ASP
  <form method="post" name="myform" action="?action=backupdatabase" 选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup"value="backup"<label for=act_backup备份</label <INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"<label for=act_restore恢复</label <br数据库名:<IN...
SQL Server 2008 备份数据库: 1.打开SQL , 找到要备份的数据库 , 右键 任务 备份 2.弹出 [ 备份数据库对话框 ] ,如图: 3.点击添加 [ 按钮 ] . 如下图: 4.选择要备份的路径 和 备份的文件名 点击 [ 确定 ]. 5.然后就一直点击确定就可以了 . 然后我们来到D:\ 看看 6.这个时候 , 你可以把它压缩打包什么的 , 要用的时候 , 在...
标签: SQLServer
/*备份数据库的过程*/ if exists(  select * from sysobjects   where name=’pr_backup_db’ and xtype=’p’           ) begin  drop proc pr_backup_db end go create proc pr_backup_db @flag&n...

经验教程

138

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部