一个非常简单的关于数据库还原的问题 100分(答对再加分)!!!!!!!!!!!!(100分)

  • 主题发起人 主题发起人 cz_liusen
  • 开始时间 开始时间
C

cz_liusen

Unregistered / Unconfirmed
GUEST, unregistred user!
我在delphi中用restore还原数据库,想把还原时产生的.mdf和.log这两个文件放到我指定的文件夹中,我知道是在restore中加move语句,但具体的用法我不会,有谁能提供点代码让我看看,只要回答的内容与本题相关都有分!!!!
 
关注[8D][8D][8D][8D]
 
明天上班了回答你.我有现成的代码,刚刚写的.
 
1、先在指定位置生成数据库。
2、恢复你备份的数据库。
下面代码是生成一个名称是dcjd_ls的数据库。
备份文件是c:/kk
Command1.CommandText:='IF not EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N''dcjd_ls'') '+
' CREATE DATABASE [dcjd_ls] ON (NAME = N''dcjd_ls_Data'', FILENAME = N'''+LMDBrowseEdit1.Path+'/dcjd_ls_Data.MDF'' , SIZE = 3, FILEGROWTH = 10%) LOG ON (NAME = N''dcjd_ls_Log'', FILENAME = N'''+LMDBrowseEdit1.Path+'/dcjd_ls_Log.LDF'' , SIZE = 1, FILEGROWTH = 10%) '+
' COLLATE Chinese_PRC_CI_AS '+
'restore database dcjd_ls from disk= ''c:/kk'' with REPLACE';
Command1.Execute;
 
多看帮助!


D. 还原数据库并移动文件
下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:/Program Files/Microsoft SQL Server/MSSQL/Data 目录下。

RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY,
MOVE 'MyNwind' TO 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/NewNwind.mdf',
MOVE 'MyNwindLog1' TO 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/NewNwind.ldf'
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH RECOVERY
 
既然楼上都说得那么清楚了,我就不说了
另外在还原之前一般要得到逻辑文件
Restore FileListOnly From Disk = ''。。。看看帮助吧。
 
sSize := 255;
GetMem(sBuffer, sSize + 1);
try
if GetComputerName(sBuffer, sSize) then //取计算机名,用来在下面的语句中给SQL 服务器指定服务器名
str:= sBuffer;
finally
FreeMem(sBuffer);
end;
adoquery1.ConnectionString:='Provider=SQLOLEDB.1;Password=;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source='''+str+''';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=RD-SW;Use Encryption for Data=False; Tag with column collation when possible=False;Integrated Security=SSPI;Persist Security Info=False;';
adoquery1.SQL.Clear;
try
if not FileExists(Extractfilepath(application.ExeName)+'/备份/Paper_AutoMade.dat') then
begin
showmessage('备份文件不存在,不能还原数据库!');
exit;
end;
adoquery1.SQL.Add('RESTORE FILELISTONLY FROM DISK = '''+Extractfilepath(application.ExeName)+'备份/Paper_AutoMade.dat'+''' restore database Paper_AutoMade from disk='''+Extractfilepath(application.ExeName)+'备份/Paper_AutoMade.dat'+''' WITH MOVE ''Paper_AutoMade'' TO '''+Extractfilepath(application.ExeName)+'Data/Paper_AutoMade.mdf'+''',MOVE ''Paper_AutoMade_log'' TO '''+Extractfilepath(application.ExeName)+'Data/Paper_AutoMade_log.ldf'+'''');
adoquery1.ExecSQL();
sleep(2000);
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;
except
showmessage('还原数据库出错!');
exit;
end;
 
后退
顶部