• 4847阅读
  • 4回复

[提问]关于sqlite插入的问题 [复制链接]

上一主题 下一主题
离线mrcalifor
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-11
使用sqlite,我将要插入的信息保存在数组record【】中,然后利用for循环向数据中插入数据
for(int i=0;i<recordNum;i++)
{
         query.exec(QString("INSERT INTO table VALUES('%1')").arg(record);
}
不知道为什么,采用这种方式有时候插入成功,有时候插入不成功。在网上查了说sqlite数据库的读写数度比较慢什么的,不知道是不是这个原因,应该怎么解决呢??
请各位不吝赐教,小弟在此谢过!

离线淳于半邪

只看该作者 1楼 发表于: 2012-04-11
sqlite数据库的读写确实比较慢的,用事务的形式提交:因为我们开始事务后,进行大量操作的语句都保存在内存中,当提交时才全部写入数据库,此时,数据库文件也就只用打开一次。
QSqlDatabase db = QSqlDatabase::database() ;
db.transaction();  
for(int i=0;i<recordNum;i++)
{
         QString szSql = QString("INSERT INTO table VALUES('%1')").arg(record);
         if(!query.exec(szSql))
               db.rollback();
}
db.commit();

试试


离线mrcalifor
只看该作者 2楼 发表于: 2012-04-11
回 1楼(淳于半邪) 的帖子
多谢啦!我来试试先!
离线淳于半邪

只看该作者 3楼 发表于: 2012-04-11
回 2楼(mrcalifor) 的帖子
离线hcyake
只看该作者 4楼 发表于: 2012-04-11
同时也要考虑你所插入的值是否可以重复,例如这个值是pk或者其他约束,本身就非法操作,肯定不成功!
快速回复
限100 字节
 
上一个 下一个