我对数据库比较熟悉,从数据库的角度说几句, query1.add('delete from tablename'); query1.execsql; 这两条语句有可能把表锁住,而事务没有提交。 query1与table可能分属于不同事务,table.open发出For Update请求,一直在等待query1所在事务解锁,所以死掉了。' this connection is used by another statement ' 从字面上理解,你基于connection发出一条SQL语句,当该语句没有完成时又发出了另一条基于该connection的语句
刚才那是第二个问题。只有你用两个部件对同一个数据源 操作是才会有! 关于地一个问题。 应该写: query1.close; query1.sql.clear; query1.sql.add('delete from tablename'); query1.open;
query1.add('delete from tablename');
query1.execsql;
这两条语句有可能把表锁住,而事务没有提交。
query1与table可能分属于不同事务,table.open发出For Update请求,一直在等待query1所在事务解锁,所以死掉了。' this connection is used by another statement '
从字面上理解,你基于connection发出一条SQL语句,当该语句没有完成时又发出了另一条基于该connection的语句
操作是才会有!
关于地一个问题。
应该写:
query1.close;
query1.sql.clear;
query1.sql.add('delete from tablename');
query1.open;