1

我正在编写一个 Python (2.5) GUI 应用程序,它执行以下操作:

  • 从 Access 导入到 Sqlite 数据库
  • 将 ui 表单设置保存到 Sqlite 数据库

目前我使用 pywin32 读取 Access,使用 pysqlite2/dbapi2 读取/写入 Sqlite。

但是,某些 Qt 对象在更新 Sqlite 数据库时不会自动转换为 Python 或 Sqlite 等效项。例如,QDate、QDateTime、QString 等会引发错误。目前我正在维护转换功能。

我使用 QSql 进行了调查,这似乎克服了强制转换问题。此外,它能够连接到 Access 和 Sqlite。这两个好处似乎允许我重构我的代码以使用更少的模块而不是维护我自己的转换函数。

我正在寻找的是任何 SO 社区因切换到 QSql 而经历的重要副作用、性能增益/损失、功能增益/损失的列表。

到目前为止,我遇到的一个功能损失是无法使用 QODBC 驱动程序使用 Access 函数(例如,'SELECT LCASE(fieldname) from tablename' 失败,'SELECT FORMAT(fieldname, "General Number") from tablename')

4

1 回答 1

0

在处理数据库和 PyQt UI 时,我将使用类似于模型-视图-控制器模型的东西来帮助组织和简化代码。

查看模块

  • 使用/持有 UI 所需的任何 QObjects
  • 包含用于更新 QTGui 对象以及从 GUI 对象中提取输入的简单函数/方法

控制器模块

  • 将执行所有数据库交互
  • 更复杂的代码在这里

通过使用 MVC,您将无需过多地依赖 QT 库,并且在将 QT 与 Python 链接时遇到的问题也更少。

所以我想我的建议是继续使用 pysqlite(因为这是你习惯的),但是稍微重构你的设计,所以唯一处理 QT 库的就是 UI。从您的 GUI 的描述来看,它应该是相当简单的。

于 2009-03-03T21:22:54.110 回答