我在Delphi中用ADOQuery执行"backup database a to disk='c:\a.dat'"备份数据库成功,现在还原过程中遇到问题,还忘各位高手不吝赐教。
我大致是这样做的:
adoquery.sql.clear;
adoquery.sql.add('use master restore database a from disk=''c:\a.dat''');
adoquery.execsql;
connection连接到master上,执行语句没有出错,但数据库也没有还原成功(上面的SQL语句在查询分析器中执行则能成功还原数据库)。

解决方案 »

  1.   

    adoquery.close;
    adoquery.clear;
    adoquery.add('use master restore database a from disk=''c:\a.dat'' with replace');
    adoquery.execsql;
      

  2.   

    adoquery.sql.clear;
    adoquery.sql.add('use master');
    adoquery.sql.add('go');
    adoquery.sql.add('restore database a from disk=''c:\a.dat''');
    adoquery.execsql;
    试试吧
      

  3.   

    adoquery.sql.clear;
    adoquery.sql.add('use master');
    adoquery.sql.add('go');
    adoquery.sql.add('restore database a from disk=''c:\a.dat''');
    adoquery.execsql;
    试试吧
    我认为这个比较好用。等你的结果。
      

  4.   

    adoquery.sql.clear;
    adoquery.sql.add('use master');
    adoquery.sql.add('go');
    adoquery.sql.add('restore database a from disk=''c:\a.dat''with replace');
    adoquery.execsql;
      

  5.   

    我给你说说
    恢复用sp_who查看数据库的连接如果有用户连接到你须要还原的那个数据库
    用kill 进程号将连接关掉
    再执行'restore database a from disk=''c:\a.dat''with replace'
    就ok了
      

  6.   

    还原数据库必须把所有和数据库的连接都关掉,包括Server Manager,这样才能还原,否则是不行的