在停止循环结果之前,如何检查sqlite查询是否返回任何内容。
//see if there are results and do something if not
while(sqlite3_step(selectstmt) == SQLITE_ROW)
{ /*process on reults */}
答案 0 :(得分: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的忠实粉丝,但我认为它很轻。