qt sqlite参数化查询踩坑记录

184 阅读1分钟

Qt 操作sqlite时,参数化传参时遇到的一些问题。

第一种方式

下面写一个伪sql语句演示 select c1,c2,c3 from t1 where c5=@c5 and c6=@c6 然后传参时 query.addBindValue(c5); query.addBindValue(c6); 使用这种方式传参c5和c6是按顺序传入的,如果顺序错了,那参数也就错了。

另一种方式

使用bindValue,下面示例伪代码。 select c1,c2,c3 from t1 where c5=:c5 and c6=:c6 query.bindValue(":c6",c6Value); query.bindValue(":c5",c5Value); 此处我故意写反了他们的顺序,旨在说明顺序对这种传参方式是没有影响的,因为他们是按名字对应的,可是有一点让人困惑的,似乎这个名字必须是以 :+name的形式才能被识别,我尝试继续使用@+name是不生效的。