gpt4 book ai didi

iphone - SQLite count(*) 如何得到结果?

转载 作者:IT王子 更新时间:2023-10-29 06:31:46 27 4
gpt4 key购买 nike

我已经完成了这段代码来计算数据库中的行数

    int rows = 0;
if (sqlite3_open([[SqliteManager getDBPath] UTF8String], &database) == SQLITE_OK) {
const char *sql = "select count(*) from artheca";
sqlite3_stmt *countstmt;

if(sqlite3_prepare_v2(database, sql, -1, &countstmt, NULL) == SQLITE_OK) {
NSLog(@"inside");
rows = sqlite3_column_int(countstmt, 0);
}
}
else
sqlite3_close(database);
return rows;

但结果总是0。

所以,我不确定 rows = sqlite3_column_int(countstmt, 0); 是否是获取行数的正确语句...是否正确?

最佳答案

编辑:要执行 SQL 语句,您需要 call all these 6 functions in order :

sqlite3_open()        Open the database
sqlite3_prepare() Create the SQL statement
sqlite3_step() Execute the statement
sqlite3_column() Fetch the result
sqlite3_finalize() Destroy the statement
sqlite3_close() Close the database

您缺少 sqlite3_stepsqlite3_finalize 步骤。

顺便说一句,你可以使用 sqlite3_get_table()sqlite3_exec()对于这些简单的查询。


来自 http://www.sqlite.org/c3ref/column_blob.html ,

The leftmost column of the result set has the index 0.

因此你应该使用

rows = sqlite3_column_int(countstmt, 0);

关于iphone - SQLite count(*) 如何得到结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3116890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com