如何利用程式重整Interbase資料庫 |
尚未結案
|
a120803
初階會員 ![]() ![]() 發表:61 回覆:66 積分:25 註冊:2003-03-12 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 請問各位大大: 如何利用程式重整Interbase資料庫Interbase 並沒有提供直接 pack 方式來重整資料庫, 雖然在 IBCONSOLE 中有一種 SWEET方式, 但實際沒有太大效果, 要重整必須先備份再回存, 如果你有 IBexpress 元件, 內有提供 IBbackup, IBrestore 兩個元件來做, 範例如下 // 重整InterBase(先backup) with IBBackupService1 do begin ServerName:= dComputerName; // client端的電腦名稱 Active:= True; try Verbose:= True; Options:= [NonTransportable, IgnoreLimbo]; DatabaseName:= ibName; // 原來的InterBase檔來源(含完整路徑) BackupFile.Clear; BackupFile.Add(bakFile); // 給一個備份目的檔 bakFile(含完整路徑) ServiceStart; while not Eof do GetNextLine; finally Active:= False; end; end; //回存 with IBRestoreService1 do begin ServerName:= dComputerName; Active:= True; try Verbose:= True; Options:= [Replace, UseAllSpace]; PageBuffers:= 3000; PageSize:= 4096; DatabaseName.Text:= rstFile; // 欲回存的檔案(含完整路徑) BackupFile.Text:= bakFile; // 之前的備份檔 ServiceStart; while not Eof do GetNextLine; finally Active:= False; end; end; 建議回存檔案時, 請不要回存到原來的InterBase檔, 最好採用 回存到其他地方, 在回存成功時再用copyfile丟回去 試試看, 可以減少 20-35%的大小! |
a120803
初階會員 ![]() ![]() 發表:61 回覆:66 積分:25 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |