Помогите мне, я хочу сделать универсальную функцию, которая получает результаты любой строки запроса и помещает все строки в другую переменную. Итерируя по строке, как узнать количество доступных столбцов?
Environment *env = Environment::createEnvironment();
Connection *conn = env->createConnection("user","pass");
quantLinhas = 0;
if( conn != NULL ) {
Statement *stmt = conn->createStatement(query);
ResultSet *rs = stmt->executeQuery();
resultadoSQL->linhas.clear();
while (rs->next()) {
aux.campos.clear();
numbers_colums = rs->whatever_method() //WHAT DO I DO HERE??
for(i = 0; i < numbers_colums ; i++) {
aux.campos.push_back( rs->getString(i) );
quantLinhas++;
}
resultadoSQL->linhas.push_back( aux );
}
stmt->closeResultSet(rs);
conn->terminateStatement(stmt);
env->terminateConnection(conn);
}
По словам документация ты можешь использовать getColumnListMetaData
функция. Количество элементов в возвращаемом векторе может быть тем, что вы хотите. Вы можете проверить, является ли каждый элемент PTYPE_COL чтобы обеспечить это.
попробуй это
vector<MetaData> columnList = rs->getColumnListMetaData();
numbers_colums = columnList.size();
columnList.clear();
это сработало для меня.
ссылка на источник