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

2023年 4月 16日 53.8k 0

怎样压缩sqlserver2000的数据库备份文件,像rar一样?小弟有一7m的sqlserver2000 数据库备份文件,在程序中怎样压缩啊? 复制代码 代码如下: procedureTForm1.Button2Click(Sender:TObject); var SHExecInfo:SHE

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论