从SQLite获取int值

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

sqlite3_prepare成功之后,您不能忘记使用sqlite3_finalize清除语句。 要获取结果记录,请调用sqlite3_step直到它不返回SQLITE_ROW 。 要获取当前结果记录的值,请调用sqlite3_column_ *函数 :

 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); } 

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

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