¿Es posible usar getContentResolver().query()
cuando quiero sum(column)
?proveedor de contenido android suma consulta
O
¿Tengo que hacer consulta prima para manejar db?
¿Es posible usar getContentResolver().query()
cuando quiero sum(column)
?proveedor de contenido android suma consulta
O
¿Tengo que hacer consulta prima para manejar db?
OK, parece que no es posible usar getContentResolver().query()
. Tuve que conectarme a db y hacer rawQuery
.
ContentProviderClient client = getContentResolver().acquireContentProviderClient(AUTHORITY);
SQLiteDatabase dbHandle= ((MyContentProvider)client.getLocalContentProvider()).getDbHandle();
Cursor cursor = dbHandle.rawQuery("SELECT sum("+COLUM_NNAME+") FROM "+TABLE_NAME +" WHERE "+WHERE_CLAUSE , null);
cursor.moveToFirst();
int cnt = cursor.getInt(0);
cursor.close();
cursor.deactivate();
client.release();
Puede usar el 'simpleQueryForLong()' -Método.
Cuando se proporciona la matriz de columnas para ContentResolver.query
, envuelva el nombre de la columna con la función sum()
String[] columns = new String[] { "sum(" + columnName + ")" };
Cursor cursor = getContentResolver().query(
content_uri,
columns,
selection,
selectionArgs,
sort
);
cursor.moveToFirst();
int columnSum = cursor.getInt(0);
esto no funciona Columna suma (duración) E/DatabaseUtils (2917): \t en android.database.sqlite.SQLiteQueryBuilder.computeProjection (SQLiteQueryBuilder.java:523) –
respuesta aceptada ES INCORRECTO
Es posible en ContentProvider AS
String[] columns = new String[] { "sum(" + columnName + ")" };
Cursor cursor = getContentResolver().query(
content_uri,
columns,
selection,
selectionArgs,
sort
);
int columnSum = cursor.getInt(0);
único error que Tom no se olvide de hacerlo:
cursor.moveToFirst();
Que Tom siempre comete errores; P –
¿Ha probado en el ICS? – SarjanWebDev