Count Number of Rows in a SQLite Database Count Number of Rows in a SQLite Database sqlite sqlite

Count Number of Rows in a SQLite Database


I came across a solution, using my code above, just replacing the step statement with the code below:

if (sqlite3_step(stmt) == SQLITE_ERROR) {    NSAssert1(0,@"Error when counting rows  %s",sqlite3_errmsg(database));} else {    rows = sqlite3_column_int(stmt, 0);    NSLog(@"SQLite Rows: %i", rows);}


This usually works for me

- (NSInteger )numberRecordsForTable:(NSString *)table {NSInteger numTableRecords = -1;if (sqlite3_open([self.dbPath UTF8String], &database) == SQLITE_OK) {    NSString *sqlStatement = [NSString stringWithFormat: @"select count(*) from %@", table];    const char *sql = [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding];    if(sqlite3_prepare_v2(database, sql, -1, &sqlClause, NULL) == SQLITE_OK) {                  while(sqlite3_step(sqlClause) == SQLITE_ROW) {            numTableRecords = sqlite3_column_int(sqlClause, 0);        }    }    else {        printf("could not prepare statement: %s\n", sqlite3_errmsg(database));    }}else {    NSLog(@"Error in Opening Database File");}sqlite3_close(database);return numTableRecords; 

}

HTH


There is no SQL expression to count rows in a database: you can count rows in a every table and then add them up.