我遍了一个数据库存储的程序,用的是Qsqlite数据库,此程序放到x86-linux环境下编译后可以在虚拟控制台下显示出数据界面的数据,可是交叉编译后的执行程序下到arm开发板上,功能按钮可以显示在lcd上,而数据窗口的数据却显示不出来,ls -l database.db发现-rw-r-r root root 0,里面是0个字节,说明文件是创建了,但没有内容。是什么原因呢?请高手指教,谢谢
代码:
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”);
db.setDatabaseName(“database.db”);
if(!db.open()) return false;
QSqlQuery query;
query.exec(“create table student (id int primary key, name vchar)”);
query.exec(“insert into student values (0,’shu0′)”);
query.exec(“insert into student values (1,’shu1′)”);
return true;
}
void Widget::on_pushButton_clicked() //点击查询按钮
{
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery(“select * from student”);
model->setHeaderData(0, Qt::Horizontal, tr(“id”));
model->setHeaderData(1, Qt::Horizontal, tr(“name”));
QTableView *view = new QTableView;
view->setModel(model);
view->show();
}
后来我把在x86环境下运行成功并生成的数据库文件database.db下到开发板的根目录下,然后修改上面的应用程序,只是对他进行打开,而没有下面的query.exec创建表。则可以在lcd 上显示出database.db里的内容,可是还是无法上面做添加数据的操作。
附代码