如何使用现有的 Sqlite 数据库部署 Qt 应用程序
How to deploy Qt application with an existing Sqlite db?
我想将我的Qt应用程序与现有的Sqlite数据库打包。我有标准的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
。假定数据库文件位于资源文件系统的根目录中。
问候,托马斯
相关文章:
- 查询SQLite数据库中的日期
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在ArangoDb AQL查询中指定数据库
- 使用调试/崩溃报告将应用程序部署到客户端
- 从数据库实时显示QT c++中的数据
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 无法在C++中建立与MySQL数据库的连接
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 将类实现到数据库程序中
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 调试编译的服务器在数据库打开时崩溃
- C++变量mysql_query到数据库
- LMDB:在有限的内存系统中打开大型数据库
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- 以只读模式打开数据库时SQLITE_CANTOPEN错误
- QT QML:使用.qrc文件将SQLite数据库部署到Android不起作用
- 如何使用现有的 Sqlite 数据库部署 Qt 应用程序
- IIS-部署ASP.NET网站和数据库连接
- 开源C或c++嵌入式关系数据库(复制源代码以部署)