Qt:将数据库存储/创建到用户空间
Posted
技术标签:
【中文标题】Qt:将数据库存储/创建到用户空间【英文标题】:Qt: Store/create a database into user space 【发布时间】:2013-04-09 22:07:51 【问题描述】:我开发了一个使用 SQLite 数据库的小型应用程序。现在,我想创建这个数据库并将其存储在用户空间(就硬盘而言),就像使用 QSettings 存储设置一样。
我可以使用 QDir 和类似的类来查找用户主目录的位置,但我想避免创建隐藏目录,我正在寻找一个透明的解决方案和独立于操作系统的解决方案。
我可以使用 Qt 资源系统将数据库创建到用户主目录中(稍后再找到)吗?
我怎样才能让它变得简单?
【问题讨论】:
【参考方案1】:要真正回答您的问题,我们需要了解一些事情。首先,您希望如何将数据库实际存储在磁盘上?它是否需要采用特定的文件格式?二进制? .txt 文件? .txt/sql 文件,可以读入另一个数据库程序(即 SQL 中用于重建数据库和表的命令)?
Qt 有一个对象数组可供您用来存储数据库。您可以使用 QFile 和 QTextStream/QDataStream 创建您自己的自定义文件。就用户交互而言,QDir 和 QFileDialog 类对此提供了极好的支持。
【讨论】:
你为什么需要这样的东西(恕我直言,它没有提供任何有用的问题)?目前,应用程序使用 SQLite 数据库,如果它不存在,则自己的应用程序代码创建一个并使用适当的表填充它。数据库存储在与应用程序相同的目录中,我想将其存储在用户目录中,就好像它是 QSettings 文件一样,避免使用 QDir 和 QFileDialog 因为我没有向用户询问位置或文件名 好的,所以不要使用 QDir 和 QFileDialog。选择您自己的位置并将其硬编码到程序中。但是您的文件格式与您将数据库保存到磁盘有什么关系呢?如果您真的想滥用 QSettings,您可以将数据库中的每个条目强制进入 QSettings 并以这种方式存储。否则,您需要将文件写入硬盘的某个位置,这就是我在原始答案中所说的。您的来电。以上是关于Qt:将数据库存储/创建到用户空间的主要内容,如果未能解决你的问题,请参考以下文章