我的程式如下:
  query1.close;
  query1.databasename:='db1';
  query1.open;  query2.close;
  query2.databasename:='db1';
  query2.open;一运行就会报:Can not perform this operation on an open database.
我把程式改成如下:
  query1.close;
  query2.close;
  query2.databasename:='db1';
  query1.databasename:='db1';
  query1.open;
  query2.open;
可还是错。我又不能关闭db1.
我该怎么改呀? 谢谢。

解决方案 »

  1.   

    我这样写没错,通过了
    query1.Close;
    query1.DatabaseName:='db1';
    query1.SQL.Clear;
    query1.SQL.Add('select * from danwei');
    query1.Open;
    query2.Close;
    query2.DatabaseName:='db1';
    query2.SQL.Clear;
    query2.SQL.Add('select * from geren');
    query2.Open;
      

  2.   

    Attempting to set DatabaseName when a database already associated with this component is open raises an exception.
      

  3.   

    我试过了发现如果我不退出这个Form,而对这个Form中的Query运行时动态改变它的databasename是可以的,但如果我退出了该Form,但没有退出程序时,再打开该Form动态改变它的databasename就失败了,必须在退出Form时关闭Database.我想问的是为什么,什么时候我需要关闭Database,什么状况下又不需要,谢谢。