2009-02-26 199 views
1

如何在停止循環結果之前檢查sqlite查詢是否返回任何內容。檢查sqlite查詢結果

//see if there are results and do something if not 
while(sqlite3_step(selectstmt) == SQLITE_ROW) 
{ /*process on reults */} 

回答

2

我想我錯過了你的問題,如果它返回SQLITE_ROW,那麼它有一排準備閱讀。

的API是http://www.sqlite.org/capi3ref.html#sqlite3_step

您可以通過列函數訪問這些數據:

http://www.sqlite.org/capi3ref.html#sqlite3_column_blob

所以你基本上是在做正確的事情,而sqlite3_step回報SQLITE_ROW您仍然有數據訪問。

//澄清

SQLite的獲取和使用sqlite3_step,稱它不會取得整個結果集給你一次行之一。所以,直到你打電話給你,你纔會知道你是否會獲得數據。

當我在嵌入式設備上工作時,我不得不使用SQLite,但總是通過體面的DAL。我不是它的API的狂熱粉絲,但它是輕量級的,我猜。

+0

謝謝。我想通過調用sqlite3_step(selectstmt)我執行查詢。我不想執行兩次。一次檢查SQLITE_ROW,另一個檢查結果。或者這是沒有創建一個數組來保存/緩存結果的唯一方法? – 4thSpace 2009-02-26 07:18:06