0

我正在使用 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。我在上面的代码中做错了什么?

4

1 回答 1

1

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

您需要sqlite3_stepsqlite3_reset获取第一行值之前和之后。

您可以将您的do {...更改} while(sqlite3_step() == SQLITE_ROW)while(sqlite3_step() == SQLITE_ROW)...}来实现这一点。

这也将消除后立即步骤的需要sqlite3_prepare16_v2

于 2011-04-24T03:41:20.687 回答