2009-06-01 15 views
16

Duplicar posible:
Android Sqlite - “No Such Table” ErrorExcepción SQLite: ninguna tabla de tal error

Estamos tratando de desarrollar una aplicación en Android. Estamos utilizando la base de datos SQLite y en el teléfono obtenemos

SQLiteException: no tal tabla.

Está funcionando bien en el simulador.

¿Alguien puede aportar algo al respecto?

+1

¿Ha ejecutar el código en un emulador limpia? ¿También ha verificado que el código que crea la tabla se está ejecutando? El siguiente paso sería sacar el sqlite db del emulador y mirarlo usando un buscador de base de datos sqlite para verificar que la tabla realmente exista. – hacken

+0

¡Hola! Ya he creado una base de datos y simplemente uso las bases de datos ya creadas, por lo que las tablas ya están creadas. Solo estoy haciendo SELECCIONAR en la tabla existente. Mi preocupación es que funciona bien en el simulador y no en el teléfono –

+0

¿Has verificado que la mesa está allí? Es mucho más probable que la mesa no esté en el teléfono que seleccione no funcionar. De nuevo, es muy fácil verificar que su base de datos haya sido creada correctamente. – hacken

Respuesta

14

Si no especifica correctamente el nombre de archivo de la base de datos, creo que se trata de crear una base de datos vacía. Esta es generalmente la causa de 'tabla no encontrada'. Verifique su ruta y el nombre de archivo de la base de datos.

+1

estaba usando, por ejemplo: data @ base-db, por lo que db era no ser creado.Después de eliminar @ como database-db, funciona para mí .... :) gracias por la pista ... – PrinceMidha

2

Algunas personas han podido resolver el problema siguiendo los pasos mencionados here. Me parece que este problema existe en ciertas versiones de Android 2.2. He incorporado este cambio en mi código, aunque todavía estoy buscando probadores Beta para ver si realmente funciona.

6

Me había enfrentado a un sabor diferente del mismo problema.

Me estaba poniendo no such table error cuando intento insertar.

Antes de insertar, el código estaba llamando

mDb = mDbHelper.getWritableDatabase(); 

getWritableDatabase(), cuando se le llama por primera vez llamará onCreate()

tuve mi consulta SQL para crear la tabla dentro de este método alcrear

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 

Entonces, para mí, lo que sucedió fue que el db se creó correctamente cuando la aplicación se ejecutó por primera vez No hay tabla debido a algunos otros errores. Más tarde cada vez que se ejecuta la aplicación, onCreate() nunca se llama ya que db ya está allí y, por lo tanto, no se creó ninguna tabla, por lo que fallaron todos los demás comandos SQL.

Así que se trasladó la creación de la tabla de onCreate(), y ahora su trabajo

+1

¿cómo encontraste db fuera de oncreate? –

Cuestiones relacionadas