QT Sqlite UPDATE语句准备错误
问题描述:
我想用prepare
一个SQL语句使用QT的内置Sqlite引擎。QT Sqlite UPDATE语句准备错误
下面的语句:
UPDATE collections SET collection_type=:v1 WHERE
(collections.collection_name = 'asfg')
未能在QSqlQuery
的prepare
声明(prepare
回报false
)。
QSqlError err = db.lastError();
没有给出错误信息......
但是如果我执行同一语句(经用数字替换:v1
)在sqlite的提示成功为止。
我在做什么错了?
编辑:
我在做什么错误是不是已经检查了数据库结构。桌子丢失了。太糟糕了,我不能downvote我自己的岗位:(
答
与?
更换:v1
然后用
query.addBindValue(v1);
v1
是包含变量值。
冒号,而不是一个问号是一个有效的占位符在SQLite中,并且在QSqlQuery中似乎也是有效的,但是这不会导致准备语句失败。 – Murphy
并且''v1'不是[有效的占位符](http://www.sqlite.org/lang_expr.html# varparam) –
@Murphy请不要对我的帖子作任何更改,您的修改无效。 – Evgeny