【问题标题】:Getting int values from SQLite从 SQLite 获取 int 值
【发布时间】:2013-05-18 15:54:36
【问题描述】:

我听说使用sqlite3_prepare_v2 而不是sqlite_exec 从数据库中获取整数,但我没有找到任何示例。 This 页面也没有帮助。现在我从数据库中获取字符串,所以我需要用atoi 解析它们,这似乎很慢而且效率很低。 SO上有很多类似的问题,但它们是关于obj-c和iOS SDK的。我需要 C/C++ 提示或示例。 提前致谢。

【问题讨论】:

    标签: c++ c sqlite int


    【解决方案1】:

    sqlite3_column_int(result, columnNum); 将从结果的当前行中返回一列作为 int。

    您的准备​​功能是准备您的查询,它与结果的解释方式无关。 sqlite3 中的所有数据都以文本形式存储,您可以使用适当的函数来检索您认为应该是类型的值。

    【讨论】:

    【解决方案2】:

    sqlite3_prepare成功后,一定不要忘记清理sqlite3_finalize的语句。 要获取结果记录,请调用sqlite3_step,直到它不返回SQLITE_ROW。 要获取当前结果记录的值,请调用sqlite3_column_* functions

    sqlite3_stmt *stmt;
    if (sqlite3_prepare_v2(db, "SELECT 42", -1, &stmt, NULL) != SQLITE_OK)
        ...error...
    else {
        for (;;) {
            int rc = sqlite3_step(stmt);
            if (rc == SQLITE_DONE)
                break;
            if (rc != SQLITE_ROW) {
                ...error...
                break;
            }
            printf("value: %d\n", sqlite3_column_int(stmt, 0));
        }
        sqlite3_finalize(stmt);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-30
      • 2020-11-23
      • 1970-01-01
      • 2015-09-15
      • 2014-01-09
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多