Qt SQLite数据库没有绝对路径

Qt SQLite数据库没有绝对路径,第1张

概述有没有办法在不知道绝对路径的情况下引用 database.sqlite文件? _db = QSqlDatabase::addDatabase("QSQLITE");_db.setDatabaseName("/the/path/i/dont/know/database.sqlite"); >我已经尝试将database.sqlite添加到Resources文件夹并通过qrc:调用它,但显然无法写入 有没有办法在不知道绝对路径的情况下引用 database.sqlite文件?

_db = QsqlDatabase::addDatabase("QsqlITE");_db.setDatabasename("/the/path/i/dont/kNow/database.sqlite");

>我已经尝试将database.sqlite添加到Resources文件夹并通过qrc:调用它,但显然无法写入资源文件.
>我也尝试使用QApplication :: applicationDirPath();,但这会导致不同的路径,具体取决于用户的 *** 作系统.例如.它将MyApp.app/Contents/MacOS附加到实际目录.

解决方法 使用sqlite作为后端创建QsqlDatabase时,您有两个选择:

>将绝对路径作为数据库名称
>给出相对路径:在这种情况下,数据库将保存在二进制文件的目录中.

所以你必须知道你的数据库的绝对路径.

编辑

在您最初知道数据库应该位于何处的情况下,您可以对其进行硬编码(这绝不是明智的),也可以创建配置并使用QSettings加载它.例如:

QSettings settings;QString dbPath = settings.readValue("DBPath",QString(/*fallback path*/)).toString();//do smth with dbPath

再看看here

总结

以上是内存溢出为你收集整理的Qt SQLite数据库没有绝对路径全部内容,希望文章能够帮你解决Qt SQLite数据库没有绝对路径所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1150211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存