我正在编写一个Python(2.5)GUI应用程序,它执行以下操作:
目前我使用pywin32读取Access,使用pysqlite2 / dbapi2读取/写入Sqlite。
但是,在更新Sqlite数据库时,某些Qt对象不会自动转换为Python或Sqlite等效项。例如,QDate,QDateTime,QString等引发错误。目前我正在维护转换功能。
我调查了使用QSql,它似乎克服了投射问题。此外,它还能够连接到Access和Sqlite。这两个好处将出现,以允许我重构我的代码以使用更少的模块而不维护我自己的转换函数。
我正在寻找的是一份重要的副作用,性能增益/损失,功能增益/损失的列表,这些都是SO社区因切换到QSql而经历的。
到目前为止我遇到的一个功能损失是无法使用QODBC驱动程序使用Access函数(例如,'table LCASE(fieldname)from tablename'失败,'SELECT FORMAT(fieldname,“General Number”)也是如此表名')
答案 0 :(得分:1)
在处理数据库和PyQt UI时,我将使用类似于模型 - 视图 - 控制器模型的东西来帮助组织和简化代码。
查看模块
控制器模块
通过使用MVC,您不需要依赖QT库,并且在将QT与Python链接时会遇到更少的问题。
所以我猜我的建议是继续使用pysqlite (因为这是你习惯的),但重构你的设计一点,所以处理QT库的唯一方法是UI。从GUI的描述来看,它应该相当简单。