QSql数据库并连接到 .sqlite 文件

QSqlDatabase and connecting to .sqlite file

本文关键字:sqlite 文件 连接 数据库 QSql      更新时间:2023-10-16

当我尝试连接到与exe位于同一文件夹中的数据库文件时,发生了一些奇怪的事情。不显示错误消息,并且未加载数据库中的数据。

sdb = QSqlDatabase::addDatabase("QSQLITE");
sdb.setDatabaseName("lang.sqlite");
if (!sdb.open())
{
    qDebug() << sdb.lastError().text();
    QMessageBox msgBox;
    msgBox.setIcon(QMessageBox::Critical);
    msgBox.setText(sdb.lastError().text());
    msgBox.setStandardButtons(QMessageBox::Ok);
    msgBox.exec();
}

但是如果我将数据库移动到另一个文件夹 - 一切正常。

sdb = QSqlDatabase::addDatabase("QSQLITE");
sdb.setDatabaseName("db\lang.sqlite");
if (!sdb.open())
{
    qDebug() << sdb.lastError().text();
    QMessageBox msgBox;
    msgBox.setIcon(QMessageBox::Critical);
    msgBox.setText(sdb.lastError().text());
    msgBox.setStandardButtons(QMessageBox::Ok);
    msgBox.exec();
}

有什么想法吗?

试试这个:

sdb.setDatabaseName(qApp->applicationDirPath()
                    + QDir::separator()
                    + "lang.sqlite" );