2011-01-13 14 views
5

¿Alguien sabe el SQL para obtener una lista de nombres de tablas a través del código en Android? Sé que .tables lo hace a través del shell de comandos, pero esto no funciona a través del código. ¿Tiene algo que ver con los metadatos, etc.?Android obtener lista de tablas

Respuesta

3

Entendido:

SELECT * FROM sqlite_master WHERE type='table' 
10

Sólo tenía que hacer lo mismo. Esto parece funcionar:

public ArrayList<Object> listTables() 
    { 
     ArrayList<Object> tableList = new ArrayList<Object>(); 
     String SQL_GET_ALL_TABLES = "SELECT name FROM " + 
     "sqlite_master WHERE type='table' ORDER BY name"; 
     Cursor cursor = db.rawQuery(SQL_GET_ALL_TABLES, null); 
     cursor.moveToFirst(); 
     if (!cursor.isAfterLast()) { 
      do { 
       tableList.add(cursor.getString(0)); 
      } 
      while (cursor.moveToNext()); 
     } 
     cursor.close(); 
     return tableList; 
    } 
+0

Si imprimo esta lista de tablas para iniciar sesión ¿cómo puede ser posible? –

+0

Ok, muchas gracias. Esto funciona para mi. –

+0

Si quiero buscar el nombre de la tabla uno por uno por separado, entonces ??? –

Cuestiones relacionadas