gpt4 book ai didi

c++ - QT SQLite 不能在嵌入式设备上工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:20 25 4
gpt4 key购买 nike

我正在使用 QT 框架。基本上我正在为 ARM 设备创建应用程序。

现在我已经使用 SQLite 创建了用于数据库工作的示例应用程序。事情是一个在我的桌面上工作但是当我为设备交叉编译它并试图在我的设备上执行它时出现错误。

所以我记录了一些错误信息。最后我发现数据库文件创建成功但无法在设备中创建表。

是内存不足的问题吗?

代码:

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(););
}

好的!另一个快速问题-> 是否可以在嵌入式设备中创建数据库文件并执行查询。在我的设备中可用的可用内存是 9MB。

谢谢,毗湿奴

最佳答案

我认为你应该使用

CREATE TABLE IF NOT EXISTS songsList

sql语句而不是

create table songsList

否则一旦创建表,第二次尝试执行它时,可能会出错。

除此之外,我没有发现任何问题,但谁知道呢...我希望这会有所帮助。

关于c++ - QT SQLite 不能在嵌入式设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com