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

时间:2024-01-23 23:01:35 

怎样压缩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;   
标签:在程序中压缩sql,server2000的数据库备份文件的代码
0
投稿

猜你喜欢

  • python txt中的文件,逐行读取并且每行赋值给变量问题

    2021-04-28 21:12:02
  • 创意方法杂谈

    2009-05-13 12:53:00
  • 关于vscode 默认添加python项目的源目录路径到执行环境的问题

    2022-01-29 06:00:34
  • 让ThinkPHP支持大小写url地址访问的方法

    2023-11-17 02:28:37
  • Python 含参构造函数实例详解

    2023-02-06 13:16:48
  • Python保姆式手把手带你掌握异常的捕获和处理

    2022-04-30 14:10:18
  • Oracle 数据库连接查询SQL语句

    2009-08-05 20:56:00
  • python字典快速保存于读取的方法

    2022-02-18 02:22:11
  • MySQL使用IF语句及用case语句对条件并结果进行判断 

    2024-01-14 14:30:27
  • python openCV实现摄像头获取人脸图片

    2021-08-16 08:21:03
  • python爬虫之百度API调用方法

    2021-11-18 17:17:13
  • Python 标准库 fileinput与文件迭代器

    2023-10-31 22:36:50
  • Python时间操作之pytz模块使用详解

    2023-05-10 02:57:17
  • 使用Python paramiko模块利用多线程实现ssh并发执行操作

    2021-02-02 03:10:05
  • ext3下删除mysql数据库的数据恢复案例

    2009-05-13 14:39:00
  • 简单了解python调用其他脚本方法实例

    2022-12-07 08:53:36
  • 利用Python中的内置open函数读取二进制文件

    2022-02-26 21:00:47
  • 深度学习Tensorflow2.8实现GRU文本生成任务详解

    2022-07-27 09:04:21
  • 解构用户研究

    2010-03-15 12:34:00
  • 微信小程序实现扫雷游戏

    2024-05-11 09:06:59
  • asp之家 网络编程 m.aspxhome.com