繁体   English   中英

SQLite和QSqlQuery:引用有界值

[英]SQLite and QSqlQuery: Quoting bounded values

我想获取给定月份和年份的条目日期,因为我在SQliteman中成功执行了下一个查询:

SELECT date FROM Entries WHERE strftime('%Y-%m',date) = '2013-04'

要将查询与QSqlQuery一起使用,请使用以下代码

query.prepare("SELECT date FROM Entries WHERE strftime('%Y-%m',date) = ':year-:month'");
query.bindValue(":month", QString().sprintf("%02d", month));
query.bindValue(":year", QString::number(year));

但是会出现错误“参数计数不匹配” 那是对:year:month的引号,但是我必须使用它,否则查询不会返回任何结果。

如果不能使用引号,该如何构建查询?

您不能替换字符串内的参数; 参数本身就是整个字符串。

连接SQL中的字符串:

query.prepare("SELECT ... WHERE strftime(...) = :year || '-' || :month");

您还可以事先构造整个字符串:

query.prepare("SELECT ... WHERE strftime(...) = :yyyymm");
query.bindValue(":yyyymm", month + "-" + year);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM