gpt4 book ai didi

c++ - QSqlDatabase 没有看到表

转载 作者:行者123 更新时间:2023-11-30 02:25:54 30 4
gpt4 key购买 nike

我已经创建了一个肯定存在于项目目录中的数据库,我可以使用 DBBrowser 和 Ubuntu 终端打开它。它们都显示数据库包含“电影”表,但我在 C++ 中的代码说找不到这样的表

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("TestDatabase.db");

if(!db.open())
{
qDebug() << db.lastError();
qFatal("Failed to connect");
}

qDebug("Connected");

QSqlQuery query(db);


if(!query.exec("INSERT INTO movies (TITLE,RELEASE,STUDIO,DIRECTOR) VALUES ('Batman v Superman' , 2016 , 'WB', 'ZackSnyder');"))
{
qDebug() << query.lastError();
}
else {
qDebug("INSERTED!");
}

输出

Connected
QSqlError("1", "Unable to execute statement", "no such table: movies")

最佳答案

我想您的数据库与源代码位于同一文件夹中,但是当您运行和编译应用程序时,它将位于数据库显然不存在的发布/调试文件夹中。

现在发生的事情是 Qt 在数据库不存在时创建数据库,因此您会收到 Connected 消息。

指定一次完整路径和数据库名称来尝试一下。它应该按预期执行。

关于c++ - QSqlDatabase 没有看到表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43565248/

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