那个备份的也是你提的吧?
参考 longquan(龍泉) 的代码。主要是设置数据库单用户模式。

解决方案 »

  1.   

    把关闭数据库连接尽量提前;
    Form1.ADOConnection1.Close;
    ......
    // 不使用DefaultDataBase属性;
    ADOCmd.CommandText:='RESTORE DATAABASE '+ YourDatabaseName +
                    ' FROM DISK = '''+strFileName+''' with replace';
    ADOCmd.Execute;
      

  2.   

    怎样设置sql server2000的单用户模式
    longquan(龍泉) ,你的代码在哪里
      

  3.   

    我也发现了
    在Form1.ADOConnection1.Close;之后弹出一个对话框
    application.messagebox();
    然后执行备份就可以了
    ADOCmd.Execute;
      

  4.   

    try
      //使用 master 数据库
      query1.close;
      query1.sql := 'use master';
      query1.execsql;  //设置 shenji 为单用户模式
      //请自己将 "" 进行处理 使得命令为 EXEC sp_dboption 'shenji','single user',true
      query1.sql := 'EXEC sp_dboption "shenji","single user",true';
      query1.execsql;  query1.sql.text := 'Restore DataBase shenji from shenji200207212115 with replace';
      query1.execsql;  //设置 shenji 为非单用户模式
      //请自己将 "" 进行处理 使得命令为 EXEC sp_dboption 'shenji','single user',false
      query1.sql := 'EXEC sp_dboption "shenji","single user", false';
      query1.execsql;  //使用 shenji 数据库
      query1.close;
      query1.sql := 'use shenji';
      query1.execsql;except
      //异常处理
      //设置 shenji 为非单用户模式
      //请自己将 "" 进行处理 使得命令为 EXEC sp_dboption 'shenji','single user', false
      query1.sql := 'EXEC sp_dboption "shenji","single user",false';
      query1.execsql;
    end;