[英]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.