線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:985
推到 Plurk!
推到 Facebook!

如何利用程式重整Interbase資料庫

尚未結案
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-18 19:46:55 IP:163.25.xxx.xxx 未訂閱
請問各位大大: 如何利用程式重整Interbase資料庫
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-19 00:29:40 IP:61.66.xxx.xxx 未訂閱
引言: 請問各位大大: 如何利用程式重整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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-19 01:27:33 IP:163.25.xxx.xxx 未訂閱
謝謝大大: 哪如果沒有IBbackup, IBrestore 兩元件 只有IBDatabase IBTable元件,要如何做啊
系統時間:2024-05-20 15:19:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!