在程序中壓縮sql server2000的數(shù)據(jù)庫備份文件的代碼
更新時間:2007年03月18日 00:00:00 作者:
怎樣壓縮sql server2000的數(shù)據(jù)庫備份文件,像rar一樣?小弟有一7m的sql server2000
數(shù)據(jù)庫備份文件,在程序中怎樣壓縮啊?
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;
//從數(shù)據(jù)庫中取出圖片
//...寫出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中的圖片保存到數(shù)據(jù)庫
//...寫出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;
//保存到數(shù)據(jù)庫
TBlobField(Que.FieldByName('pic')).LoadFromStream(mss);
Que.UpdateBatch();
//...
finally
zip1.Free;
end;
finally
fs.Free;
mss.Free;
end;
數(shù)據(jù)庫備份文件,在程序中怎樣壓縮啊?
復(fù)制代碼 代碼如下:
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('壓縮完畢!'); }
這是一段壓縮圖片的代碼,壓縮文件原理相同,只需稍做改動即可。
復(fù)制代碼 代碼如下:
var
mss: TMemoryStream;
zip: TDeCompressionStream;
zip1: TCompressionStream;
fs : TFileStream;
fBuf: Array[0..16383] of Byte;
flen: Integer;
//從數(shù)據(jù)庫中取出圖片
//...寫出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中的圖片保存到數(shù)據(jù)庫
//...寫出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;
//保存到數(shù)據(jù)庫
TBlobField(Que.FieldByName('pic')).LoadFromStream(mss);
Que.UpdateBatch();
//...
finally
zip1.Free;
end;
finally
fs.Free;
mss.Free;
end;
您可能感興趣的文章:
- sql server通過腳本進(jìn)行數(shù)據(jù)庫壓縮全備份的方法【推薦】
- sql server 2008 壓縮備份數(shù)據(jù)庫(20g)
- mysql數(shù)據(jù)庫備份命令分享(mysql壓縮數(shù)據(jù)庫備份)
- sqlserver 數(shù)據(jù)庫壓縮與數(shù)據(jù)庫日志(ldf)壓縮方法分享
- 自動備份mssql server數(shù)據(jù)庫并壓縮的批處理腳本
- DBCC SHRINKDATABASEMS SQL數(shù)據(jù)庫日志壓縮方法
- ms SQL server數(shù)據(jù)庫備份、壓縮與SQL數(shù)據(jù)庫數(shù)據(jù)處理的方法
- MS SQL SERVER 數(shù)據(jù)庫日志壓縮方法與代碼
- SQL Server 2000/2005/2008刪除或壓縮數(shù)據(jù)庫日志的方法
相關(guān)文章
SQLServer導(dǎo)出sql文件/表架構(gòu)和數(shù)據(jù)操作步驟
只導(dǎo)出了數(shù)據(jù)庫的sql腳本,而表里的數(shù)據(jù)依然沒有導(dǎo)出來,接下來將為你解決這個問題,感興趣的看下教程哈2013-03-03
通過T_sql語句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填充數(shù)據(jù)
使用T_sql語句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填入數(shù)據(jù),需要的朋友可以參考下2012-10-10
sqlserver replace函數(shù) 批量替換數(shù)據(jù)庫中指定字段內(nèi)指定字符串參考方法
SQL Server有 replace函數(shù),可以直接使用;Access數(shù)據(jù)庫的replace函數(shù)只能在Access環(huán)境下用,不能用在Jet SQL中,所以對ASP沒用,在ASP中調(diào)用該函數(shù)會提示錯誤.2010-05-05
用sql語句實(shí)現(xiàn)分離和附加數(shù)據(jù)庫的方法
對于分離一個數(shù)據(jù)庫來說,我們可以用Manage Studio界面或者存儲過程。但是對于每一種方法都必須保證沒有用戶使用這個數(shù)據(jù)庫.接下來所講的都是對于用命令來分離或附加一個數(shù)據(jù)庫。2010-03-03
SQL Server中Table字典數(shù)據(jù)的查詢SQL示例代碼
這篇文章主要給大家介紹了關(guān)于SQL Server中Table字典數(shù)據(jù)的查詢SQL的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

