因为你的QUERY1部件没有关闭。

解决方案 »

  1.   

    我对数据库比较熟悉,从数据库的角度说几句,
    query1.add('delete from tablename');
    query1.execsql;
    这两条语句有可能把表锁住,而事务没有提交。
    query1与table可能分属于不同事务,table.open发出For Update请求,一直在等待query1所在事务解锁,所以死掉了。' this connection is used by another statement '
    从字面上理解,你基于connection发出一条SQL语句,当该语句没有完成时又发出了另一条基于该connection的语句
      

  2.   

    刚才那是第二个问题。只有你用两个部件对同一个数据源
    操作是才会有!
    关于地一个问题。
    应该写:
    query1.close;
    query1.sql.clear;
    query1.sql.add('delete from tablename');
    query1.open;