tommy

It's hard to tell the world we live in is either a reality or a dream
posts - 52, comments - 17, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Sqlite导致锁死的问题

Posted on 2010-09-12 09:16 Tommy Liang 阅读(590) 评论(0)  编辑 收藏 引用
在如下系列中:

1、QSqlQuery q("select count(*) from sometable where name=:name");
   ...
2、QSqlDatabase::database().transaction();
   ....

在1和2之间如果不清除q,是会锁死的,答案在这里:

bool QSqlDatabase::commit ()

Commits a transaction to the database if the driver supports transactions and a transaction() has been started. Returns true if the operation succeeded. Otherwise it returns false.

Note: For some databases, the commit will fail and return false if there is an active query using the database for a SELECT. Make the query inactive before doing the commit.

Call lastError() to get information about errors.

See also QSqlQuery::isActive(), QSqlDriver::hasFeature(), and rollback().


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理