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

資料庫還原的問題??

尚未結案
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-09 11:00:26 IP:163.17.xxx.xxx 未訂閱
//還原資料庫 Close; TADODataSet(q0).CommandTimeout := 3600; with SQL do begin Clear; Add('RESTORE DATABASE ' edDBM.Text); Add('FROM DISK = ' QuotedStr('c:\eztmp.db')); Add('WITH REPLACE'); end; ExecSQL; 以上是小弟還原資料庫時所下的SQL的語法,edDBM.Text是資料庫名稱,還原時發生了一個問題,因eztmp.db於原來的電腦上是放在C:\Program Files\Microsoft SQL Server\MSSQL\Data,若要還原的PC SQL安裝的路徑為預設值就沒有問題,但是若該PC將SQL裝至D:或是其他路徑時,就會無法還原,不知這個問題該如何解決呢?? ======================== 我是DELPHI5的初學者
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-10 12:55:50 IP:202.62.xxx.xxx 未訂閱
您好﹗    讓使用者自行選擇路徑﹐在OpenDialog中按下Ok鍵時﹐使用使用者選擇的路徑﹐按下Cancel鍵時﹐則使用預設路徑 加一個OpenDialog SQL部分改為﹕
begin
  with 資料集元件 do
    begin
      Close;
      TADODataSet(q0).CommandTimeout := 3600; 
      with SQL do
        begin
          Clear; 
          if OpenDialog1.Execute then
            begin
              Add('RESTORE DATABASE ' edDBM.Text);
              Add('FROM DISK = ''' OpenDialog1.FileName ''' ');
              Add('WITH REPLACE');
            end
          else
            begin
              Add('RESTORE DATABASE ' edDBM.Text);
              Add('FROM DISK = ' QuotedStr('c:\eztmp.db'));
              Add('WITH REPLACE');
            end;
        end;
    end;
  ExecSQL;
end;
========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟
shieh2700
高階會員


發表:0
回覆:127
積分:100
註冊:2002-06-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-10 13:05:17 IP:61.229.xxx.xxx 未訂閱
以下是從 SQL Server 線上叢書中節錄的片段說明: 此範例同時使用了 BACKUP 與 RESTORE 陳述式來建立 Northwind 資料庫的副本。MOVE 陳述式則會將資料與記錄檔還原至指定位置。RESTORE FILELISTONLY 陳述式是用來決定要還原的資料庫中檔案的數目及名稱。該資料庫的新副本命名為 TestDB。如需詳細資訊,請參閱 RESTORE FILELISTONLY。 BACKUP DATABASE Northwind TO DISK = 'c:\Northwind.bak' RESTORE FILELISTONLY FROM DISK = 'c:\Northwind.bak' RESTORE DATABASE TestDB FROM DISK = 'c:\Northwind.bak' WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf', MOVE 'Northwind_log' TO 'c:\test\testdb.ldf' GO
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-11 09:54:00 IP:163.17.xxx.xxx 未訂閱
shieh2700 前輩的回答裁示小弟要的答案,但是該如何得知目前SQL安裝的路徑呢?? ======================== 我是DELPHI5的初學者
shieh2700
高階會員


發表:0
回覆:127
積分:100
註冊:2002-06-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-11 16:00:47 IP:211.76.xxx.xxx 未訂閱
SELECT * FROM sysfiles
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-11 17:21:54 IP:163.17.xxx.xxx 未訂閱
TADODataSet(q0).CommandTimeout := 3600; with SQL do begin Clear; Add('RESTORE DATABASE ' edDBM.Text); Add('FROM DISK = ' QuotedStr('c:\eztmp.db')); Add('WITH REPLACE,'); Add('MOVE ' edDBM.Text ' TO ' syspath edDBM.Text '.mdf,'); Add('MOVE ' edDBM.Text '_log' ' TO ' syspath edDBM.Text '.ldf'); end; ExecSQL; //edDBM.Text 資料庫名稱 //syspath 資料庫的路徑 小弟依照shieh2700大哥的方法將SQL語法修改,出現了錯誤,不知還有哪裡需要修正呢??幫幫忙吧!! ======================== 我是DELPHI5的初學者
shieh2700
高階會員


發表:0
回覆:127
積分:100
註冊:2002-06-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-12 04:30:01 IP:61.229.xxx.xxx 未訂閱
此為備份檔回存的指令格式之一: RESTORE DATABASE [DataBaseName] FROM DISK=[BackupFile] WITH MOVE [LogicalName1] TO [PhysicalName1], MOVE [LogicalName2] TO [PhysicalName2], MOVE [LogicalName3] TO [PhysicalName3]...    其中的 [LogicalName] 需與備份檔內的設定相同, [LogicalName] 可透過下列指令取得: RESTORE FILELISTONLY FROM DISK = 'c:\aaa.bak'    假若回傳結果集內容格式如下:
LogicalName  PhysicalName      Type  FileGroupName  Size     MaxSize
aaa_Data     D:\aaa_Data.MDF   D     PRIMARY        1048576  35184372080640
aaa_Log      D:\aaa_Log.LDF    L     NULL           1048576  35184372080640
參照此結果修改備份檔回存的指令應如下:
RESTORE DATABASE NewDB FROM DISK='c:\aaa.bak' WITH
MOVE 'aaa_Data' TO 'D:\aaa_Data.MDF',
MOVE 'aaa_Log'  TO 'D:\aaa_Log.LDF'
除 [LogicalName] 需與備份檔內設定相同外, 其餘皆可自行更改.
jch
中階會員


發表:111
回覆:224
積分:66
註冊:2003-12-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-16 09:27:04 IP:220.130.xxx.xxx 未訂閱
多謝大哥的幫忙,不知資料庫是否還原成功該如何檢查呢?? ======================== 我是DELPHI5的初學者
shieh2700
高階會員


發表:0
回覆:127
積分:100
註冊:2002-06-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-16 12:22:26 IP:61.229.xxx.xxx 未訂閱
引言: 多謝大哥的幫忙,不知資料庫是否還原成功該如何檢查呢?? ======================== 我是DELPHI5的初學者
過程中無錯誤發生, 應該就代表著還原成功.
系統時間:2024-06-29 9:17:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!