QSqlQueryModel读取数据库,提示 database locked
2015-08-20 12:07
756 查看
问题:在使用QT的QSqlQueryModel操作SQLite数据库的时候,drop table 时,提示错误信息database table is locked Unable to fetch row,也就是database locked,找了半天,发现,当查询结果条目大于256时,会提示此错误。
原因:
原来,QT的QSqlQuery或QSqlQueryModel每次最多只能缓存查询结果的256条。即,如果查询语句操作的结果超过256条了,也只能返回256。这样就必然会导致在后续操作中的错误。
解决办法
在操作结果前先通过fetchmore()来获取所有的结果,方法如下:
QString sqlstr;
sqlstr=QString("select * from a");
//QSqlQueryModel *model = new QSqlQueryModel
model->setQuery(sqlstr);
while(model->canFetchMore())
{
model->fetchMore();
}
原因:
原来,QT的QSqlQuery或QSqlQueryModel每次最多只能缓存查询结果的256条。即,如果查询语句操作的结果超过256条了,也只能返回256。这样就必然会导致在后续操作中的错误。
解决办法
在操作结果前先通过fetchmore()来获取所有的结果,方法如下:
QString sqlstr;
sqlstr=QString("select * from a");
//QSqlQueryModel *model = new QSqlQueryModel
model->setQuery(sqlstr);
while(model->canFetchMore())
{
model->fetchMore();
}
相关文章推荐
- 搞定百度编辑器UEditor
- 在UINavigation上添加UISearchBar
- 虚拟化--004 your account is no authorized to perform the requested action
- UITableViewCell的重用问题
- IOS开发 - UIApplication的常见使用
- UE4 GPU Profiling
- UE4 CPU Profiling
- UE4 Profiler
- UE4 Performance Guidelines
- UE4 Performance and Profiling
- UE4 Stat Commands
- 获得多行UILabel的每一行内容
- UE4 System Settings
- 80 css ie8下ui-box-head出现阴影效果
- UIAlertView的自动取消的使用
- Unreal4 Build System
- UE4 配置文件
- Cannot insert the value NULL into column 'StuID', table 'NETRepository.dbo.S
- qemu-guest-agent各版本功能演进
- leetcode - Unique Binary Search Trees