如何使用libpqxx从数组中获取值
How can I get values from array using libpqxx?
如何使用libpqxx从数组中获取值?例如,我有这样的表格:
CREATE TABLE testTable
(
testArray integer[]
);
如何在C++中获得具有这些值的int数组?
在7.2版本中,我使用as_array
方法解析整数数组:
list<unsigned long> found_messages;
pqxx::result res = db->execute(query);
auto arr = res[0][0].as_array();
pair<pqxx::array_parser::juncture, string> elem;
do
{
elem = arr.get_next();
if (elem.first == pqxx::array_parser::juncture::string_value)
found_messages.push_back(stoul(elem.second));
}
while (elem.first != pqxx::array_parser::juncture::done);
我没有找到其他方法:
result wynikiJednostki(ncWykonaj.exec("SELECT * FROM testTable;"));
result::const_iterator rekord = wynikiJednostki.begin()
vector<unsigned short>* values = getArray(record[1].as<string>());
getArray:
vector<unsigned short>* getArray(string pString)
{
vector<unsigned short>* numbers = new vector<unsigned short>;
pString += ',';
size_t begin = pString.find('{') + 1;
size_t end = pString.find('}');
size_t actualPosition;
string numberS;
while(true)
{
actualPosition = pString.find(',', begin);
if(actualPosition > end)
{
numberS = pString.substr(begin, end - begin);
numbers->push_back(atoi(numberS.c_str()));
return numbers;
}
numberS = pString.substr(end, actualPosition - begin);
numbers->push_back(atoi(numberS.c_str()));
begin = actualPosition + 1;
}
}
暂时我用这个,但我认为这不是最好的方法。
相关文章:
- 如何在 nlohmann 的 json 库中获取数组长度?
- 从用户那里获取数组大小的值
- 如何在VS2019中获取数组的任意对齐?
- 我如何获取数组的大小,以便我可以从函数声明所述数组
- 根据字符获取数组的索引
- 尝试递归获取数组元素的总和
- 用于获取数组长度的指针数学
- Socket.io客户端C++,从Socket.on获取数组
- C++ nlohmann JSON 获取数组名称
- 练习循环和使用循环 1 次以及如何获取数组的最大值
- 如何在函数参数中通过引用获取数组
- 如何获取数组中字符串元素的字符数?[C++]
- 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
- 无法获取数组内数组的总和
- 尝试获取数组中的最小元素时崩溃
- 获取数组类型的无效错误
- 如何从用户获取数组输入
- 使用位集获取数组项的条件总和,而无需使用循环
- 如何以模式获取数组中的数据?
- 如何获取数组中每个数字的平方根 (C++)