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语句也同样的错误。
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语句也同样的错误。
...全文
相关推荐
基于qt的SQLite客户端实现
在Qt Creator中创建一个新的C++项目,选择Qt Widgets Application模板,这将为你提供一个基础的GUI应用程序框架。为了与SQLite数据库交互,我们需要包含相应的Qt库。
十一、Qt数据库操作.zip
**Qt与数据库连接**: 在Qt中,我们通常使用QSqlDatabase模块来与各种类型的数据库进行交互。
QT中sqlite多线程操作4个注意问题
### QT中sqlite多线程操作4个注意问题在开发基于Qt的应用程序时,经常会遇到需要使用多线程来进行SQLite数据库操作的情况。
windows下Qt的mysql驱动
为了解决这个问题,你需要单独安装和配置MySQL驱动,以便让Qt能够正常地与MySQL数据库进行通信。Qt是一个强大的跨平台应用程序开发框架,由The Qt Company开发并维护。
QSqlQueryModel sqlite QT 中文问题处理
在QT开发中,使用QSqlQueryModel与SQLite数据库交互时,可能会遇到中文显示乱码的问题。这通常是由于编码不匹配、数据库设置不当或者程序处理方式错误导致的。


数据库及相关技术
