1

我有一个小型桌面应用程序,将其数据存储在 SQLite 数据库中。

目前,当应用程序首次运行(或用户想要创建新配置)时,我只需删除 db 文件并运行QSqlQuery.exec("CREATE TABLE...")语句的负载。

当我意识到我必须更改数据库结构时,这会导致我需要大量的工作来查找我使用过的所有 SQL 并更新它以使其正常工作。所以现在我正在尝试提出一种更模块化的方法来存储 SQL\创建表......

我的第一个想法是将用于创建数据库的 SQL 语句存储在文本文件中,作为 Qt 资源,但现在我已经实际实现了它,感觉“笨拙”(QFile->QTextStream->readLine() 上的循环)并且不允许我在文本文件中格式化我的 SQL 语句以提高可读性。

我可以做到的另一种方法是在编译时生成一个空数据库并将其存储为资源,但对我来说,我认为二进制文件的额外大小将超过创建新数据库的简单性收益。

我可以创建一个全局常量 QString 的负载,但我最不喜欢这个想法,如果可能的话,我更愿意将非 C++\Qt 与源代码分开。

那么,大师们有什么想法吗?

4

1 回答 1

0

如果;在行尾搜索 a,则可以将 SQL 语句格式化为多行。

如果压缩一个空的 DB 文件,它并不大。

于 2012-12-08T09:45:50.817 回答