2013-03-05 64 views
1

幫幫我,我想做一個泛型函數來獲取任何查詢字符串的結果並將所有行放入另一個變量中。在遍歷一行時,如何知道可用列的數量?如何使用Oracle OCCI庫迭代結果時對列數進行計數?

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); 
} 
+0

您的連接器是否具有檢索字段或列數的功能? – 2013-03-05 20:32:21

+0

我使用OCCI作爲連接器 – jguilhermeam 2013-03-05 20:40:34

回答

1

根據documentation可以使用getColumnListMetaData功能。返回的向量中元素的數量可能是你想要的。您可以檢查每個元素是否爲PTYPE_COL以確保它。

+0

,但'getColumnListMetaData'返回'vector '。我需要檢索一個'vector ' – jguilhermeam 2013-03-06 14:29:53

+0

這是爲什麼?您需要列表中的列數,它以某種方式在該向量中:每個元素表示一列,或者每個具有PTYPE_COL的元素都是一列。所以要麼自己數一下,要麼只是得到元素的數量,你的選擇。 – mistapink 2013-03-06 15:12:16