gpt4 book ai didi

python - PyQt QSqlQuery.prepare() 返回 false

转载 作者:行者123 更新时间:2023-12-01 02:06:27 25 4
gpt4 key购买 nike

在 PyQt4 中,我创建一个 QSqlDatabase 就像

slpath = 'path/to/my/db.sqlite'
db = QSqlDatabase.addDatabase('QSPATIALITE')
db.setDatabaseName(slpath)

这似乎有效。现在我尝试UPDATElayer_styles如下:

query = QSqlQuery(db) #db cp. above
query.prepare("UPDATE layer_styles SET f_table_catalog=:path;")
query.bindValue(":path", slpath)
query.exec_()

但是 query.prepare(...) 返回 false。我做错了什么?

最佳答案

没有 built-in database driver称为“QSPATIALITE”,但您的 QGIS 安装可能会提供自定义 SpatiaLite那个名字的司机。该驱动程序是 sqlite 的扩展,因此您可以像这样使用它:

slpath = 'path/to/my/db.sqlite'
if QSqlDatabase.isDriverAvailable('QSPATIALITE'):
db = QSqlDatabase.addDatabase('QSPATIALITE')
else:
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName(slpath)
if not db.open():
print('ERROR:', db.lastError().text())

如果prepare()exec_()仍然失败,可以使用query.lastError()检查sql中是否有错误声明。

关于python - PyQt QSqlQuery.prepare() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com