QT与数据库SQLITE的问题
//按扭事件
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()<
//另一个按扭事件:
QSqlQuery query;
//修改文件标记为未读取状态
QString updatedata = "update fileinfo set status='1' where id='" + QString::number(record_number_Line) + "';";
qDebug()< 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
应用程序黑屏。
再次使用ARM板上的超级终端执行: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命令时结果正常。
请问这是哪里出现的错误?
QString updatedata = QString("delete from fileinfo where id='") + QString::number(record_number_Line) + QString("';");
delete语句也同样的错误。