C++ 如何使用现有的Sqlite db部署Qt应用程序?

C++ 如何使用现有的Sqlite db部署Qt应用程序?,c++,qt,sqlite,C++,Qt,Sqlite,我想用现有的Sqlite db打包我的Qt应用程序。我有标准的Qt数据库代码: m_db = QSqlDatabase::addDatabase("QSQLITE"); m_db.setDatabaseName("database.sqlite"); bool connected = m_db.open(); if (!connected) { qDebug() << "Error: connection with database failed"; } else {

我想用现有的Sqlite db打包我的Qt应用程序。我有标准的Qt数据库代码:

m_db = QSqlDatabase::addDatabase("QSQLITE"); 

m_db.setDatabaseName("database.sqlite");
bool connected = m_db.open();

if (!connected) {
    qDebug() << "Error: connection with database failed";
} else {
    qDebug() << "Database: connection success";
    QSqlQuery q(m_db);
    q.prepare("SELECT * FROM people");
    if (q.exec()) {
        qDebug() << "Yay!";
    } else {
        qWarning() << "Bad exec: " << q.lastError();
        qWarning() << q.executedQuery();
    }
}

我知道这是因为它没有找到正确的数据库,而是在创建一个新的数据库。如果我在我的开发机器上提供到
m_db.setDatabaseName()
的绝对路径,它就会工作。但我的数据库文件位于my.qrc中,在部署时该位置将不可用。。。那么,如何获取此数据库的可靠路径呢?

setDatabaseName
调用中,请对资源文件使用正确的语法:

m_db.setDatabaseName(":database.sqlite"); // <-- note the : before the name

m_db.setDatabaseName(“:database.sqlite”);// 在
setDatabaseName
调用中,对资源文件使用正确的语法:

m_db.setDatabaseName(":database.sqlite"); // <-- note the : before the name

m_db.setDatabaseName(“:database.sqlite”);//这就是你要找的吗