我正在使用QT框架。基本上我正在为ARM设备创建应用程序。
现在我已经使用SQLite为数据库工作创建了示例应用程序。事情就是一个人在我的桌面上工作,但当我交叉编译它为设备并试图在我的设备中执行时获取错误。
所以我记录了一些错误消息。最后我发现DB文件已成功创建但无法在设备中创建表。
是否是因为内存不足问题?
代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("songs.db");
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
//return false;
debugLog("#fileListThread::run()-> Unable to establish a database connection.."<<db.lastError(););
}
else
{
debugLog("#fileListThread::run()-> opened songs.db successfully..");
}
QSqlQuery query;
bool queryStatus = query.exec("create table songsList (id int primary key, "
"Song varchar(20), Artist varchar(20),Producer varchar(20))");
if(queryStatus)
{
debugLog("#fileListThread::run()-> created table in songs DB successfully..");
}
else
{
debugLog("#fileListThread::run()-> failed to create table in songs DB.."<<query.lastError(););
}
好!一个更快速的问题 - &gt;是否可以在嵌入式设备中创建DB文件并执行查询。在我的设备中,可用内存为9MB。
谢谢, 毗
答案 0 :(得分:0)
我认为你应该使用
CREATE TABLE IF NOT EXISTS songsList
sql语句而不是
create table songsList
否则,一旦创建了表,第二次尝试执行该表时,可能会出错。
除此之外,我没有看到问题,但谁知道......我希望这会有所帮助。