| 
                         怎样压缩sqlserver2000的数据库备份文件,像rar一样?小弟有一7m的sqlserver2000  数据库备份文件,在程序中怎样压缩啊?  <div class="codetitle"><a style="CURSOR: pointer" data="64396" class="copybut" id="copybut64396" onclick="doCopy('code64396')"> 代码如下:<div class="codebody" id="code64396"> procedureTForm1.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:='ae:qwqw.rare: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('ae:zqzq.rare:zqzq'),'',SW_show);  ShowMessage('压缩完毕!');}
  这是一段压缩图片的代码,压缩文件原理相同,只需稍做改动即可。  <div class="codetitle"><a style="CURSOR: pointer" data="56110" class="copybut" id="copybut56110" onclick="doCopy('code56110')"> 代码如下:<div class="codebody" id="code56110"> var  mss:TMemoryStream;  zip:TDeCompressionStream;  zip1:TCompressionStream;  fs:TFileStream;  fBuf:Array[0..16383]ofByte;  flen:Integer;  //从数据库中取出图片  //...写出SQL语句以取得有图片的记录,此处从略  mss:=TMemoryStream.Create;  fs:=TFileStream.Create('filename.jpg',fmCreateorfmOpenWrite);  try  TBlobField(Que.FieldByName('pic')).SaveToStream(mss);  zip:=TDeCompressionStream.Create(fs);  try  flen:=zip.Read(fbuf,SizeOf(fBuf));  whileflen>0dobegin  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));  whileflen>0dobegin  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;
                          (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |