如何在 QML 应用程序中以编程方式识别我的 sqlite 数据库文件位于何处

如何在 QML 应用程序中以编程方式识别我的 sqlite 数据库文件位于何处

我有一个 QML 应用程序,它也使用 C++。我需要从 C++ 连接到 DB (sqlite)。为此,我需要知道数据库文件的确切名称和位置。如何识别它?或者如何在没有这个确切位置的情况下从 C++ 连接到 SQLite?

与此同时,我搜索并发现所以我建议用这种方法来识别它:

$HOME/.local/share/myapplicationname/Database/filewithextension.sqlite

该数据库是使用以下命令从 javascript 应用程序创建的:db = LocalStorage.openDatabaseSync("OwnDict.db", "", "App NAme", 100000);

答案1

从 QML LocalStorage 创建的数据库保存~/.local/share/<appid>/Databases/<应用程序ID>applicationName你的MainView。数据库有十六进制名称和扩展名.sqlite. 每个都有一个相关的.ini文件,其名称和描述来自第一个和第三个参数openDatabaseSync

如果你只通过 LocalStorage 创建一个数据库,那么这个目录中当然只有一个数据库。如果你创建了更多数据库,你可能需要解析.ini文件来找到正确的文件。但是,在我有限的测试中,数据库文件似乎具有确定性的文件名,因此您可能能够找出设备上的文件名,然后将该值硬编码到 C++ 代码中。

相关内容