程序只有一个窗体,一个adoquery,连接master,sql语句为恢复自己的备份数据库,运行却提示
数据库正在使用,怎么这样呢?我没有连接那个库呀?

解决方案 »

  1.   

    你要先断开要恢复的数据库在进行恢复。看看这个http://www.delphifans.com/SoftView/SoftView_763.html
      

  2.   

    先断开什么意思?我根本就没有跟那个要恢复的数据连接呀,我连的是master,
      

  3.   

    停止sql服务,或者让你的客户端停止使用
      

  4.   

    现在还是单机开发,代码如下,不知道是否正确,
    with ADOQback do   //---adoqback连的是master
        begin       close;
           sql.Clear;
           sql.Add('restore database kanxue from disk=:a with replace');
           Parameters.ParamByName('a').Value:=rest.Text;       try
             ExecSQL;
            if Application.MessageBox('恢复成功! 现在需要重新登陆软件,请按"确定"','提示',64)=IDOK then close;
           except
              Application.MessageBox('恢复失败!请确认恢复文件的路径和名称是否正确,或是否已关闭其它正在使用此数据库的程序','提示',64);
              exit;
              free;
           end;
        end;
      

  5.   

    事实上,你可以在SQL 企业管理器的--》管理--》当前活动--》进程信息中查看连接情况,看是什么原因。
      

  6.   

    sql.Add('use master restore database kanxue from disk=:a with replace');加上use master,提示还原成功,但是数据库却没有变化,还是今天的信息,我的备份是昨天的,
      

  7.   

    用上move试试  restore database @databasename from disk =@backup_device
      with move @logical_name to @path_name,
           move @logical_log to @path_log,replace
      

  8.   

    你是不是把SQL的窗体打开了
      

  9.   

    Parameters.ParamByName('a').datatype:=ftwidestring;
    改成这样既可,我的文件路径太长,