我正在使用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。我在上面的代码中做得不正确?
答案 0 :(得分:1)
假设您显示的是伪代码,因为您缺少sqlite3函数的许多参数......
在获得第一行值之前,sqlite3_step
之后需要sqlite3_reset
。
您可以将do {
... } while(sqlite3_step() == SQLITE_ROW)
更改为while(sqlite3_step() == SQLITE_ROW)
... }
来完成此操作。
这也消除了在sqlite3_prepare16_v2