C++ Poco::与std::参数数组的数据绑定

C++ Poco::与std::参数数组的数据绑定,c++,poco-libraries,C++,Poco Libraries,我使用的是Poco 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); 语句选择(mySession)//连接到SqLite会话对象。 std::向量args; 参数。推回(1); 参数。推回(

我使用的是
Poco 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);
语句选择(mySession)//连接到SqLite会话对象。
std::向量args;
参数。推回(1);
参数。推回(2);
此查询不起作用,将下面的文本抛出到标准输出

select << "SELECT X,Y,Z FROM my_table WHERE a=? AND b=?", bind(args), into(myEntityContainer),now;
选择
在以后的版本中是否更正了此问题

不,这不是一个简单的实现,因为当前
bind()
希望它的参数绑定到单个列(即“垂直”-如果绑定向量,那么向量中的值将插入单个列)

如何在1.5.2版中进行变通

您已经给出了一个变通方法,尽管不是通用的;通用解决方案将遍历容器并“手动”将每个成员添加为语句的绑定,请参见示例(请注意,
use()
bind()
基本上做相同的事情,解释了两者之间的语义差异)

在以后的版本中是否更正了此问题

不,这不是一个简单的实现,因为当前
bind()
希望它的参数绑定到单个列(即“垂直”-如果绑定向量,那么向量中的值将插入单个列)

如何在1.5.2版中进行变通

您已经给出了一个变通方法,尽管不是通用的;通用解决方案将遍历容器并“手动”将每个成员添加为语句的绑定,请参见示例(请注意,
use()
bind()
基本上做相同的事情,解释了两者之间的语义差异)

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