我要备份的是sql server 2000建的数据库,用的语句是:
ado_connection.Execute "Restore Database db1 From Disk = 'c:\db1.bak'"
明明我的所有与数据库的连接都关闭了,怎么老是提示数据库正在使用中,未能获得对数据库的排它访问权,怎么回事呀?????
急死了...................

解决方案 »

  1.   

    恢复之前你可以查询是否有到此数据库的连接,如有则Kill掉相应的进程,如:
    rs.open"select spid from master..sysprocesses where dbid=db_id('db1')",cn
    do while not rs.eof
      cn.execute"kill " & rs!spid
      rs.movenext
    loop
      

  2.   

    按照小马哥说的, 我发现一个问题,用连接的close方法关闭连接后, sysprocesses表中仍然有该连接存在,只要把这个连接从表中删除,就可以恢复数据库.
      那我在程序中使用cnn.close 对恢复数据库不就没有作用了吗?
      别外,在与master建立连接的时候,真是出奇的慢,不知道是怎么回事????