首页 > 解决方案 > 如何使用 ESP32 SQLite3 执行 SQL 计数?

问题描述

我花了很长时间寻找这个问题的答案,但我无法完全理解它。

基本上。我在连接到 esp32 的 sd 卡上有一个 sqlite db。SQLite 完美运行,并在使用标准示例代码时返回。例如:

rc = db_exec(db2, "Select * from domain_rank where domain between 'google.com' and 'google.com.z'");
if (rc != SQLITE_OK) {
sqlite3_close(db1);
sqlite3_close(db2);
return;
}`

这会查看草图中的“db_exec”函数,然后将其传递给“回调”函数。没有这个有办法吗?我要做的就是计算 select 语句中的记录数。

谢谢

安德鲁

标签: sqlitearduinoesp32

解决方案


好的,我想我可能已经找到了解决方案

把它放在这里以防万一其他人感兴趣。

 String sql = "Select count(*) from surnames where name = 'MICHELLE'";
 rc = sqlite3_prepare_v2(db1, sql.c_str(), 1000, &res, &tail);
 if (rc != SQLITE_OK) {
      String resp = "Failed to fetch data: ";
      Serial.println(resp.c_str());
      return;
  }
 while (sqlite3_step(res) == SQLITE_ROW) {
      rec_count = sqlite3_column_int(res, 0);
 }

      Serial.println(rec_count);

无法完全理解 while 循环在计算单元格时所做的事情,我认为 sql count* 查询只会返回一个我可以直接使用的 int 值。所以我还是有点困惑。

欢迎评论!如果有人有更好的想法?

谢谢

安德鲁


推荐阅读