调用TADOConnection.Close后应该断开了同数据库的连接,但我在SQL查询分析器中执行restore database dbname from disk='c:\dbname.dat'命令却得到“因为数据库正在使用,所以未能获得对数据库的排它访问权。”的错误信息。关闭程序后,却可以成功执行。这说明只要通过TADOConnection打开连接后即使再关闭,连接仍然保持着。下面是ADO连接字符串:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=databasename;Data Source=ds;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ws;Use Encryption for Data=False;Tag with column collation when possible=False
有没有办法清楚已经关闭的连接?

解决方案 »

  1.   

    Close后是不是还要Connect:= False
      

  2.   

    状态是stClosed:
    Connection object is inactive and not connected to a database.
      

  3.   

    你把SQL Server的连接池设置为1,试试
      

  4.   

    调用TADOConnection.Free后可以,所以问题不是SQL Server连接池的问题.
      

  5.   

    正确的解决方法来了检查tadoconnection 的 state
    if adoconnection.state=stClosed then showmessage('已经关闭');关于ado的问题,多看看vb方面的书吧。哈哈,给分吧