2011-05-02 24 views

उत्तर

3

ठीक है, ऐसा लगता है कि getContentResolver().query() का उपयोग करना संभव नहीं है। मुझे डीबी कनेक्शन प्राप्त करना था और 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(); 
+0

आप आईसीएस में परीक्षण किया गया है? – SarjanWebDev

6

जब ContentResolver.query करने के लिए कॉलम की सरणी प्रदान करने, sum() समारोह के साथ स्तंभ नाम लपेट

String[] columns = new String[] { "sum(" + columnName + ")" }; 

Cursor cursor = getContentResolver().query(
    content_uri, 
    columns, 
    selection, 
    selectionArgs, 
    sort 
); 

cursor.moveToFirst(); 

int columnSum = cursor.getInt(0); 
+0

यह काम नहीं कर रहा है अमान्य कॉलम योग (अवधि) ई/डेटाबेस उपयोग (2 9 17): \t android.database.sqlite.SQLiteQueryBuilder.computeProjection (SQLiteQueryBuilder.java:5223) –

3

को स्वीकार कर लिया जवाब गलत है

आईटी

के रूप में CONTENTPROVIDER में संभव है
String[] columns = new String[] { "sum(" + columnName + ")" }; 

    Cursor cursor = getContentResolver().query(
     content_uri, 
     columns, 
     selection, 
     selectionArgs, 
     sort 
    ); 
int columnSum = cursor.getInt(0); 

केवल गलती टॉम वह ऐसा करने के लिए मत भूलना है था:

cursor.moveToFirst(); 
+0

कि टॉम हमेशा गलतियां करता है; पी –

संबंधित मुद्दे