資料庫還原的問題?? |
尚未結案
|
jch
中階會員 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
//還原資料庫
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 發送簡訊給我 |
您好﹗ 讓使用者自行選擇路徑﹐在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 發送簡訊給我 |
以下是從 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 發送簡訊給我 |
|
shieh2700
高階會員 發表:0 回覆:127 積分:100 註冊:2002-06-13 發送簡訊給我 |
|
jch
中階會員 發表:111 回覆:224 積分:66 註冊:2003-12-01 發送簡訊給我 |
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 發送簡訊給我 |
此為備份檔回存的指令格式之一:
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 發送簡訊給我 |
|
shieh2700
高階會員 發表:0 回覆:127 積分:100 註冊:2002-06-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |