дб, например
SELECT SESSIONID as SessionID USERLOGIN as UserLogin FROM CORE_USER_SESSION
при получении значений по типу имя столбца, значение столбца метод field.name убивает регистр, хотя в sql я написал ``` as SessionID ```
и на выходе получается ключ json с убитым регистром. Кто - нибудь сталкивался? Знает как поправить? Буду признателен за помощь
Сам код получения значений:
std::for_each(res.begin(), res.end(), [=](pqxx::tuple const & row)
{
std::for_each(row.begin(), row.end(), [=](pqxx::field const & field)
{
rapidjson::Value key(field.name(), result.get()->GetAllocator()),
value(field.c_str(), result.get()->GetAllocator());
result.get()->AddMember(key, value, result.get()->GetAllocator() );
});
});
Да , это ошибка в твоей программе. Где -- ищи отладчиком. Да, зачем в лямбду захват по копированию?
и зачем for_each?
C отладкой в проекте борода. Это модуль папача там с отладкой какая - то фигня.
Ну можно было и через обычный for решил сделать череp for_each
Дели код на куски и пробуй. Можешь накорябать заглушек и протестировать. Use mock, luke.
Ты вообще по-русски пишешь?
Ошибка была не в С++, А в коде запроса SELECT SESSIONID as "SessionID", USERLOGIN as "UserLogin" FROM CORE_USER_SESSION название полей нужно было через ковычки Лямбда в текущей ее интерпритации работает корректно. Всем спасибо за помощь.
нет, не нужно. Лучше убери кавычки, они не нужны и вредны даже в данном случае.
А, у тебя case-sensitive проблема что ли? Называй всё маленькими или заглавными, и всё.
case-sensitive,да. Мне надо из базы перегнать на уже готовый фронт через либу rapidjson. Они на входе ждут регистр такой. sql мне так возвращает. Если ставлю двойные ковычки, то все ок. И в Sql и в pqxx::field
Обсуждают сегодня