请教Delpht中数据库还原问题,请各位老大帮忙(100分)

  • 主题发起人 主题发起人 xhliang
  • 开始时间 开始时间
X

xhliang

Unregistered / Unconfirmed
GUEST, unregistred user!
有一sql2000 数据库备份,需还原到另一数据库 以下是一段代码:
//还原数据库
sqlstr :=' RESTORE DATABASE ' +Edit8.text ;
sqlstr :=sqlstr+' FROM disk =' +QuotedStr(Edit9.text);
ADOCommand1.ConnectionString:='Provider=SQLOLEDB.1;Password='+EDIT3.TEXT+';Persist Security Info=True;User ID='+EDIT2.TEXT+';Initial Catalog=master;Data Source='+Edit1.TEXT+'';
ADOCommand1.CommandText:=sqlstr;
ADOCommand1.Execute;
showmessage('还原数据库执行成功'); 
但运行起来,总是提示‘要还原的数据库先前的命名不同,请用WITH REPLACE选项重写语句。
   请各位老大帮忙修改,多谢多谢
 
我是这样恢复的,如果存在该数据库,会先删除。我自己使用的代码,你可以参考。
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;
application.ProcessMessages;
 
先删除同名的再还原
 
多人接受答案了。
 
后退
顶部