2009-02-26 139 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