如何在使用Oracle OCCI库迭代结果时计算列的数量
How to count the numbers of columns while iterating over results using Oracle OCCI library?
帮助我,我想做一个通用的函数,得到任何查询字符串的结果,并把所有行到另一个变量。当迭代一行时,我如何知道可用的列数?
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以确保它。
try this
vector<MetaData> columnList = rs->getColumnListMetaData();
numbers_colums = columnList.size();
columnList.clear();
它对我有效。源链接
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 当我的 if 条件计算结果为 false 时,我的 else 块将不会执行
- 为什么组合的上限和下限比较的计算结果总是为 true?
- 为什么'typeid(x) == typeid(y)'的计算结果为 true,其中 'x' 和 'y' 分别是 T 和 T& 类型的 id-表达式?
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- Fmod 函数清楚地输出一个预期的双精度值,但 if(fmod == 预期的双精度值)的计算结果不是 true
- WebGL2 和 C++ 上的浮点计算结果不同
- 术语的计算结果不是采用0个参数的函数
- 错误 C2064:术语的计算结果不是采用 3 个参数的函数
- 在C++中,是否可以编写一个条件的lambda,即只是一个计算结果为真或假的条件
- C++ 函数指针的计算结果为 1
- 为什么 02000 的计算结果为 1024
- 如何让编译器忽略这个计算结果为 false 的 if-constexpr?
- 为什么需要 FPU 重置以防止 NaN 结果传播到下一个计算结果?
- C++:术语的计算结果不是采用 1 个参数的函数
- 如果满足嵌套条件,则计算结果未显示结果C
- 为什么这个条件运算符的计算结果为 int?
- 在线程错误 C2064 中:term 的计算结果不为 0 个参数的函数
- 错误 C2064:term 的计算结果不是采用 1 个参数的函数 - 关于线程的一些东西
- 提升线程:术语的计算结果不为 0 个参数