Devuelve el recuento de registros en una variable, Sqlite, Android, Java
Mi objetivo final es limitar los registros que se pueden crear para que pueda tener una versión de prueba de mi aplicación. Estoy pensando que puedo hacer esto más bien simplemente devolviendo una variable int dentro de una instrucción sqlite count y usando una instrucción IF simple para determinar si se debe crear un nuevo registro.
Yo llamo así:
- Cómo utilizar una base de datos existente con una aplicación de Android
- Prueba de la unidad de Android Studio SQLiteDataBase es nula
- Forma preferida de actualizar sqlite db en android
- Android rawquery con cláusula Where dinámica
- Populating Spinner de la base de datos SQLite Android
Int jcount = 0; MDbHelper.countjournals (jcount);
Ahora mismo estoy intentando ejecutar esto
Public int countjournals (int jcount) { MDb.execSQL (jcount + "= SELECT COUNT (*) FROM" + DATABASE_JOURNAL_TABLE); Return jcount; }
Error que recibo:
08-27 22: 42: 32.417: ERROR / AndroidRuntime (3976): android.database.sqlite.SQLiteException: cerca de "0": error de sintaxis: 0 = SELECT COUNT (*) FROM revistas
- Malo rendimiento de SQLite en almacenamiento externo en Android
- Compruebe si el cursor tiene resultados
- Error No se puede realizar esta operación porque se ha cerrado el grupo de conexiones
- Confundido sobre CursorLoaders y usarlos con un SQLiteOpenHelper personalizado
- SQLiteDatabase.insertOrThrow no se lanza pero no se insertan datos
- Mejor alternativa de la librería Android de SQLite?
- Multiple OrderBy en el método SQLiteDatabase.Query
- SQLite: forma eficiente de eliminar lotes de filas
Ambas respuestas me parecieron que deberían funcionar, pero no pude conseguirlas. He encontrado una tercera solución que está funcionando de mí.
Largas jornadas públicas () { Return DatabaseUtils.queryNumEntries (mDb, DATABASE_JOURNAL_TABLE); }
public int countjournals() { SQLiteStatement dbJournalCountQuery; dbJournalCountQuery = mDb.compileStatement("select count(*) from" + DATABASE_JOURNAL_TABLE); return (int) dbJournalCountQuery.simpleQueryForLong(); }
Su consulta es incorrecta, mejor manera de hacer lo que necesita es:
public int countjournals() { Cursor dataCount = mDb.rawQuery("select count(*) from" + DATABASE_JOURNAL_TABLE, null); dataCount.moveToFirst(); int jcount = dataCount.getInt(0); dataCount.close(); return jcount; }
Nota de lado: También tenga en cuenta que no puede utilizar variables primitivas como referencias (y de su código parece que está tratando de hacerlo), también no puede pasar en las referencias a consultas SQLite. En su lugar sólo necesita asignar un resultado de método (consulta) a su variable.
Sólo tienes que insertar un ESPACIO después from
que empiece a funcionar …..
Cursor dataCount = mDb.rawQuery("select count(*) from " + DATABASE_JOURNAL_TABLE, null);
- Controle el tiempo de ejecución de la visibilidad de Android TextView mediante programación
- Cómo inyectar un script javascript en una vista web antes de la carga html en android 7