我是SQLite,C ++的新手,在理解如何处理查询返回的多行时遇到一些麻烦。 我需要将每列的值都放入一个变量int,以便稍后进行处理。

我到目前为止:

sqlite3_stmt* statement;

if (sqlite3_prepare_v2(getDatabase(), _sql.c_str(), -1, &statement, 0)
            == SQLITE_OK)
{
    int cols = sqlite3_column_count(statement);
    int result = 0;

    while(true)
    {
        result = sqlite3_step(statement);

        if(result == SQLITE_ROW)
        {
             for(int col = 0; col < cols; col++)
             {
                // go through each column and store it       
             }
        }
        else
        {
            break;
        }
    }
}

所以我应该在for循环中做什么?

if (col == 0) // first column position
{
   // store it...
}
else if (col == 1) // second column position
{
    // store it...
}

还是有办法通过列名做到这一点?

还是有更好的方法来解决这个问题?

===============>>#1 票数:0 已采纳

我想到了。

正确的过程是遍历每一行并使用sqlite_column(statement, [col#])

  ask by Jason translate from so

未解决问题?本站智能推荐: