SQLite C ++查询行 - 如何处理多个列

时间:2014-04-19 23:25:36

标签: c++ sql database sqlite c++11

我是SQLite,C ++的新手,在理解如何处理查询返回的多行方面遇到了一些麻烦。我需要将每列的值设置为一个变量,以便稍后处理它。

我到目前为止:

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 :(得分:0)

我明白了。

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