用ADOConnection连接SQL Server。ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=False;User ID=sa;Initial Catalog=MyData;Data Source=ComuputerName';ADOConnection1.Connected:=True;然后
ADOConnection1.Connected:=False;ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=False;User ID=sa;Initial Catalog=Master;Data Source=ComuputerName';ADOConnection1.Execute('Drop Database MyData',cmdText,[eoExecuteNoRecords]);为什么会提示“无法除去数据库MyData”,因为它当前正在使用?

解决方案 »

  1.   

    但是我已经执行了ADOConnection1.Connected:=False或ADOConnection1.Close,断开与数据库MyData的连接。而且我第二次连接的是Master数据库,执行删除MyData的命令。这个时候并没有在使用MyData呀。
      

  2.   

    如果我没执行
    ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=False;User ID=sa;Initial Catalog=MyData;Data Source=ComuputerName';ADOConnection1.Connected:=True;
    而只执行后面的语句,就可以成功删除MyData。
    很奇怪,为什么ADOConnection1.Connected:=False和ADOConnection1.Close都不能断开与数据库的连接。
      

  3.   

    还要考虑时间差问题如果你的这2个功能能隔上一段时间就没问题了或者干脆这么干1、动态创建TADOConnection,然后释放
    2、删除只要有进程连接到数据表,数据库就无法删除