簡體   English   中英

如何使用現有的Sqlite數據庫部署Qt應用程序?

[英]How to deploy Qt application with an existing Sqlite db?

我想用現有的Sqlite數據庫打包我的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();
    }
}

但結果是:

Error: connection with database failed

我知道這是因為它找不到正確的數據庫,而是創建一個新數據庫。 如果我在我的開發機器上提供m_db.setDatabaseName()的絕對路徑,它就可以工作。 但我的數據庫文件在我的.qrc中,並且在部署時將無法在該位置使用...所以如何獲得此數據庫的可靠路徑?

setDatabaseName -call中使用正確的資源文件語法:

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

...假設數據庫文件位於資源文件系統的根目錄中。

問候,托馬斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM