2011-04-23 81 views
0

我正在使用SQLite版本3运行以下代码。SQLite查找问题

//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

假设你正在展示是伪因为你错过了许多争论到sqlite3的funcitons ...

sqlite3_reset后获取值的第一行之前需要一个sqlite3_step

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

这也将消除需要的sqlite3_prepare16_v2

+0

是的,这是一个伪代码后立即步骤。谢谢。它现在有效。虽然在每次操作之后调用_step_听起来有点奇怪,但从这一点我们无法判断... – ahmd0 2011-04-25 20:10:04