SQLite寻求问题

时间:2011-04-23 20:33:41

标签: sqlite seek

我正在使用SQLite版本3来运行以下代码。

//Run SQL SELCT query
sqlite3_prepare16_v2("SELECT * FROM table_name");
sqlite3_step();

//Need to review results in several iterations
for(int i = 0; i < n; i++)
{
    //Seek to beginning
    sqlite3_reset();

    do
    {
        //Get values
        sqlite3_column_int();
        ...
        sqlite3_column_text16();
    }
    while(sqlite3_step() == SQLITE_ROW);
}

但由于某种原因,我得到的第一批数据都是0。我在上面的代码中做得不正确?

1 个答案:

答案 0 :(得分:1)

假设您显示的是伪代码,因为您缺少sqlite3函数的许多参数......

在获得第一行值之前,sqlite3_step之后需要sqlite3_reset

您可以将do { ... } while(sqlite3_step() == SQLITE_ROW)更改为while(sqlite3_step() == SQLITE_ROW) ... }来完成此操作。

这也消除了在sqlite3_prepare16_v2

之后立即步骤的需要