如何在程序中使用c获取sqlite表中的行数?是否只能通过运行“select * from table”来实现?并增加一个变量?
sqlQuery = "从公司中选择计数 (*);";
rc = sqlite3_prepare_v2(db, sqlQuery, -1, &stmt, NULL);
printf("准备计数状态:%d\n", rc);
行计数 = sqlite3_step(stmt);
sqlQuery = "从公司中选择*;";
rc = sqlite3_prepare_v2(db, sqlQuery, -1, &stmt, NULL);
printf("准备计数状态:%d\n", rc);
while (SQLITE_ROW == sqlite3_step(stmt)) {
行数++;
}
我没有得到 1 的行数,
但当我执行2时我确实明白了。
该sqlite3_step()函数不返回查询结果。SQLITE_ROW如果结果集中存在另一行,则返回,SQLITE_DONE如果不存在则返回。如果发生错误,它还会返回错误代码。
sqlQuery = "select count(*) from company;";
rc = sqlite3_prepare_v2(db, sqlQuery, -1, &stmt, NULL);
if (rc != SQLITE_OK) {
// error handling -> statement not prepared
}
rc = sqlite3_step(stmt);
if (rc != SQLITE_ROW) {
// error handling -> no rows returned, or an error occurred
}
rowcount = sqlite3_column_int(stmt, 0);
Run Code Online (Sandbox Code Playgroud)
要获取结果集中当前行的值,您必须使用正在执行查询的预准备语句按列索引访问它们。由于此查询中只有一列,因此 的索引0用于结果中最左边的列或唯一的列。而且,由于该列的值是整数,因此我们使用该sqlite3_column_int()函数,该函数以 32 位整数形式返回该值。
对于大多数普通的数据库操作,您只需要使用 SQLite C API 中的少数函数即可。您应该真正阅读并吸收介绍。它将帮助您了解数据库操作的正常工作流程。
| 归档时间: |
|
| 查看次数: |
4974 次 |
| 最近记录: |