我正在使用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。在上面的代码中,我做错了什么?
发布于 2011-04-24 11:41:21
假设您显示的是伪代码,因为您缺少sqlite3函数的许多参数……
在获取第一行值之前,在sqlite3_reset之后需要一个sqlite3_step。
您可以将您的do {...} while(sqlite3_step() == SQLITE_ROW)更改为while(sqlite3_step() == SQLITE_ROW)...}来完成此操作。
这还将消除紧跟在sqlite3_prepare16_v2之后的步骤
https://stackoverflow.com/questions/5766758
复制相似问题