【问题标题】:Checking sqlite query results检查 sqlite 查询结果
【发布时间】:2009-02-26 06:46:48
【问题描述】:

如何在停止循环遍历结果之前检查 sqlite 查询是否返回任何内容。

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

【问题讨论】:

    标签: iphone sqlite


    【解决方案1】:

    我想我在你的问题中遗漏了一些东西,如果它返回 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 获取并一次提供一个行,调用它不会检索整个结果集。所以在你调用 step 之前你不会知道你是否要获取数据。

    当我在嵌入式设备上工作时,我不得不使用 SQLite,但总是通过一个不错的 DAL。我不是它的 API 的忠实粉丝,但我猜它是轻量级的。

    【讨论】:

    • 谢谢。我想通过调用 sqlite3_step(selectstmt) 来执行查询。我不想执行两次。一次检查 SQLITE_ROW,另一次检查结果。或者这是不创建数组来保存/缓存结果的唯一方法?
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2021-12-05
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多