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í:
- Almacenamiento de bases de datos SQLite con Android y Phonegap
- ¿Cuándo debo guardar datos en SQLite ingresados en un fragmento en mi aplicación de Android?
- ¿Cómo puedo insertar una comilla doble (") en el campo Varchar de la base de datos SQLite?
- Obtención de base de datos SQLite y almacenamiento en una matriz de objetos
- Insertar datetime en 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
- SQLite - No se pudo abrir el archivo de base de datos
- Importar archivo .sql en la base de datos sqlite
- Android: Incrementar el campo DB a través de ContentValues
- SQLiteAssetHelper NullPointerException sólo en algunos dispositivos
- Acceda a la base de datos en una clase que no sea de actividad
- Bucle a través de un Cursor SQLite lleva demasiado tiempo
- Android / SQLite: columnas de la tabla Insert-Update para mantener el identificador
- CursorLoader, obtiene URI para la base de datos local
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