• 3969阅读
  • 0回复

qt with sqlite attach 后导出数据异常 [复制链接]

上一主题 下一主题
离线solotek
 
只看楼主 倒序阅读 楼主  发表于: 2011-10-28
用qt开发的程序,运行期间用:memory:的数据,完成之后attach一个文件数据库,并将:memory:中数据库导出
代码中m_db是之前创建的:memory:数据库
...
bool rslt = false;
if(Open())   // Open为自定义的函数,确保m_db已经打开
{
    QSqlQuery query(m_db);
    rslt = query.exec("attach 'path/file.db3 as expfiledb'");
    rslt = query.exec("create expfiledb.tableA as select * from min.tableA");    // 这一句操作返回false

    rslt = query.exec("create expfiledb.tableB as select * from min.tableB");
    rslt = query.exec("detach expfiledb");
}
...

当main.tableA中数据超过400条之后,执行以上代码,就会导致执行失败,但也不是每次都失败,极少概率能够正常导出。
rslt返回false。 导出的数据库文件file.db3为0kb,同时产生一个同名后缀为*.journal文件。 查过sqlite资料,理解为发生错误,该journal文件为sqlite进行rollback使用

调试了一天,未果,向大侠求助

快速回复
限100 字节
 
上一个 下一个