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));
但是会引发错误"Parameter count mismatch"。这是对于:year和:month中的引号,但是我必须使用它,否则查询不会返回任何结果。
如果不能使用引号,该如何构建查询?
不能替换字符串中的参数;参数本身是完整的字符串。
连接SQL中的字符串:
query.prepare("SELECT ... WHERE strftime(...) = :year || '-' || :month");
也可以事先构造整个字符串:
query.prepare("SELECT ... WHERE strftime(...) = :yyyymm");
query.bindValue(":yyyymm", month + "-" + year);
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 编译C++时未定义的引用
- Ctypes wstring通过引用传递
- c++r值引用应用于函数指针
- 理解c++中的引用
- C++取消引用指针.为什么会发生变化
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 强制转换为引用类型
- 引用一个已擦除类型(void*)的指针
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 具有默认值的引用获取函数
- 如何使用基类指针引用派生类成员
- SQLite和QSqlQuery:引用有界值