如何在 swift4 中获取 Sqlite3 中的表总数?



我是IOS和Sqlite3 DB的新手。

我想在 sqlite3 DB 和 swift4 中实现什么,以获得表的总数。

我做了以下步骤。

func getTotalCount()->Int32{
let queryStatementString = "SELECT COUNT(*) FROM Attendance"
var stmt: OpaquePointer?
print("select valid count (queryStatementString) ")
var totalCount: Int32 = 0
var id: Int = 0
if sqlite3_prepare_v2(db, queryStatementString, -1, &stmt, nil) == SQLITE_OK{
if sqlite3_step(stmt) == SQLITE_ROW {
id = Int(sqlite3_column_int(stmt, 0))
print("id (id)")
totalCount = sqlite3_column_count(stmt!)
print("db: validCount Result:")
print("validCount (totalCount)")
}
}
if sqlite3_step(stmt) != SQLITE_DONE {
let errmsg = String(cString: sqlite3_errmsg(stmt)!)
print("db: failure getting punchTime: (errmsg)")
}
return totalCount
}

但总是返回我 1 作为计数。 我没有到达我错过的地方。

我得到了答案。

我正在检索错误的索引值。

请参阅下面的代码。

func getTotalCount()->Int32{
let queryStatementString = "SELECT COUNT(*) FROM Attendance"
var stmt: OpaquePointer?
var totalCount: Int32 = 0
if sqlite3_prepare_v2(db, queryStatementString, -1, &stmt, nil) == SQLITE_OK{
while sqlite3_step(stmt) == SQLITE_ROW {
totalCount = sqlite3_column_int(stmt, 0)
print("totalCount (totalCount)")
}
}
if sqlite3_step(stmt) != SQLITE_DONE {
let errmsg = String(cString: sqlite3_errmsg(stmt)!)
print("db: failure getting punchTime: (errmsg)")
}
return totalCount
}

最新更新