2011-04-23 106 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