加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt SQLite数据库没有绝对路径

发布时间:2020-12-12 18:54:01 所属栏目:百科 来源:网络整理
导读:有没有办法在不知道绝对路径的情况下引用 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读