try
   dm1.db1.Connected :=true;   //捕获一下异常,
except
    ///
end

解决方案 »

  1.   

    先清除,再连接。
    sql.clear;
    sql.add('select * from aa');
    open;
      

  2.   

    用别名吧:
    procedure TFrmLogon.combobox1Change(Sender: TObject);
    begin
      dm1.db1.Connected :=false;
      dm1.db1.aliasname=combobox1.text;
      dm1.db1.Connected :=true;
    end;
      

  3.   

    我的bde中的别名是动态创建的,所以只能用一个别名来实现若干个数据库之间的切换,因为程序发布时,你不可能到人家的机器上创建N个bde连接,因为数据库的个数是不定的。难道是我的操作系统有问题吗,我看了原来写过的一个程序,也是通过修改database 控件中的params来实现一个database控件从多个数据库之间来回切换的,怎么现在就突然不行了??