Poco :: Data绑定到std ::参数数组

时间:2016-05-24 14:09:17

标签: c++ poco-libraries

我正在使用Poco version 1.5.2。我通过示例使用Poco::Data内容来解决以下问题。

 Statement select(mySession) // connect to SqLite session object.
    std::vector<int> args;
    args.push_back(1);
    args.push_back(2);

此查询不起作用,并在文本下面抛出标准输出

select << "SELECT X,Y,Z FROM my_table WHERE a=? AND b=?", bind(args), into(myEntityContainer),now;
  

“访问无效:无法转换空值。”

然而这很好用

select << "SELECT X,Y,Z FROM my_table WHERE a=? AND b=?", bind(arg[0]), bind(arg[1]) into(myEntityContainer),now;

以后的版本是否更正了? 如何在version 1.5.2中执行解决方法?

1 个答案:

答案 0 :(得分:0)

  

这是否在以后的版本中得到纠正?

不,这实现起来并不简单,因为当前bind()期望其参数绑定到单个列(即“垂直” - 如果绑定向量,则向量中的值将插入到单列)。

  

如何在1.5.2版中进行解决?

你已经给出了一个解决方法,虽然不是一般的;通用解决方案将遍历容器并“手动”将每个成员添加为对语句的绑定,请参阅here以获取示例(请注意use()bind()基本上执行相同的操作,两者之间的语义差异解释了here)。