开发者

How to count number of columns in a table in SQLITE?

How can I count the number of columns in a table i开发者_C百科n a sqlite database in Android?


A query returns a Cursor which has methods like getColumnCount().


You can use pragma table_info(foo_table) and count the number of rows returned


Here is the code and it runs perfectly without any error.

public Cursor getAllTitles(){
   return db.query(DATABASE_TABLE, new String[] {
        KEY_ROWID,KEY_ISBN,KEY_TITLE,KEY_PUBLISHER},
        null,null,null,null,null);
}

Now create the following object in onCreate() method to call above getAllTitles() method.

Cursor c = db.getAllTitles();
c.getColumnCount(); //this line will give the number of columns in table.


You can use SELECT count() FROM PRAGMA_TABLE_INFO('your_table');

Reference: https://www.sqlite.org/pragma.html#pragfunc


Here you go!

-(NSInteger)dbFieldCount:(NSString *)dbname
{
    NSString *query = [NSString stringWithFormat:@"PRAGMA table_info(%@)",dbname];
    const char *query2 = [query UTF8String];
    NSInteger nFields =0;
    sqlite3_stmt *compiledStatement;
    if(sqlite3_prepare_v2(database, query2, -1, &compiledStatement, NULL) == SQLITE_OK) 
    {
         while(sqlite3_step(compiledStatement) == SQLITE_ROW)
         {
               nFields++;
         }
    }
    sqlite3_finalize(compiledStatement);
    return nFields;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜