2010-11-29 5 views

Répondre

5

Vous pouvez utiliser pragma table_info(foo_table) et compter le nombre de lignes retournées

2

Voici le code et il fonctionne parfaitement sans aucune erreur.

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

maintenant créer l'objet suivant dans la méthode ci-dessus pour appeler la méthode getAllTitles() onCreate().

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

Pouvez-vous élaborer les paramètres de la requête db.query()? Merci. – Ravi

1

Et voilà!

-(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

Ce code ne pouvait pas fonctionner dans java, android et utilise le langage objectif-c comme prog. –

Questions connexes