• 3216阅读
  • 0回复

[提问]QT与数据库SQLITE的问题 [复制链接]

上一主题 下一主题
离线wangliangno1
 

只看楼主 倒序阅读 楼主  发表于: 2014-08-09
    //按扭事件
   QSqlQuery query;
    query.exec("select * from fileinfo");
    bool result = query.next();
    if(result == false)
        query.exec("create table fileinfo(id,filename,status);");
    query.exec("select id from fileinfo");
    while(query.next())
        record_number_Line = query.value(0).toInt();
  
   QString insertdata = "insert into fileinfo(id,filename,status) values('" + QString::number(record_number_Line);
    insertdata += "','" + QString::fromAscii(values1) + "','0');";
    query.exec(insertdata);
    qDebug()<<insertdata;
    

     //另一个按扭事件:
    QSqlQuery query;
    //修改文件标记为未读取状态
    QString updatedata = "update fileinfo set status='1' where id='" + QString::number(record_number_Line) + "';";
    qDebug()<<updatedata;
    query.exec(updatedata);

编译执行结果:

"insert into fileinfo(id,filename,status) values('8','J140809008','0');"
"update fileinfo set status='1' where id='8';"



超级终端中执行:sqlite3 SysInfo.db
sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J140808005|1
6|J140808006|1
7|J140808007|1
8|J140809008|1
sqlite>



结果没有异常。


将此代码使用arm-linux-gcc交叉编译后生成ARM构架可执行代码复制到板子上运行:
"insert into fileinfo(id,filename,status) values('9','J700101009','0');"

"update fileinfo set status='1' where id='9';"
Segmentation fault

应用程序黑屏。
再次使用超级终端执行:sqlite3 SysInfo.db
sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J700101005|1
6|J700101006|1
7|J700101007|0
8|J700101008|1
9|J700101009|0
sqlite> update fileinfo set status='1' where id='9';

sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J700101005|1
6|J700101006|1
7|J700101007|0
8|J700101008|1
9|J700101009|1
sqlite>
问题是:在QT中执行update,在PC上运行结果正常,交叉编译以后在ARM板上执行update命令时出现Segmentation faul
但是在ARM板的超级终端上运行sqlite3 xx.db执行update命令时结果正常。
请问这是哪里出现的错误

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