我想在程序运行时删除程序调用的数据库,为什么将adoconnection1.connected:=false; 或 adoconnection1.close;
然后连接到另一个数据库再 drop database 老是提示数据库正在使用中(本地数据库就我一个人在用)不能删除,程序退出后才可以删除,应该如何在程序中彻底断开数据库连接。

解决方案 »

  1.   

    连接到master数据库上试一试?为什么要删除数据库?是sqlserver吗?
      

  2.   

    虽然你的数据集已经关闭了,但是bde仍在使用呀!所以还是不行!你看看这样能不能?
    with query1 do
    begin
    close;
    sql.clear;
    sql.text:='drop table XXXX';
    sql.execsql;
    close;
      

  3.   

    guorui_wh(Re) : 
      没有别的程序再用.
      是sqlserver.
    winsock2000(winsock) : 我是要删除数据库不是删除数据集.
      

  4.   

    我是用ado连接数据库,不是BDE.
      

  5.   

    动态创建adoconnection,释放掉了,用另外一个adoconnection联到master,在drop database
      

  6.   

    程序连接的时候动态创建adoconnection,要删除数据库的时候,就把connection释放掉,用另外一个adoconnection联到master,在drop database
      

  7.   

    guorui_wh(Re): 但是我有很多数据集连接到adoconnection,如果改为动态创建就比较麻烦。
      

  8.   

    先将ADOCONNECTIOR 的ENABLED 属性改为FALSE试一试。