2016-05-24 32 views
2

我使用Poco version 1.5.2陣列。我的例子有以下問題,使用Poco::Data東西。波索::數據綁定到一個std ::的參數

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一個解決方法嗎?

回答

0

這是在以後的版本中修正?

不,這是不容易實現,因爲目前bind()預計它的參數綁定到一列(即「垂直」 - 如果你綁定一個矢量,然後從矢量值將被插入到單欄)。

我怎樣才能做到在1.5.2版本中解決方法嗎?

您已經給出瞭解決方法,儘管不是通用的;一個通用的解決方案將通過容器迭代和「手動」的每個成員添加爲綁定的聲明,請參閱here爲例(注意use()bind()基本上做同樣的事情,兩者之間相差語義解釋here)。