mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp
branchRCL_3
changeset 11 13afc0e517bd
parent 0 ff3acec5bc43
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp	Tue Feb 02 00:09:33 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp	Fri Feb 19 22:48:30 2010 +0200
@@ -764,6 +764,41 @@
     }
 
 // ----------------------------------------------------------------------------
+// CMPXDbTable::ExecuteSumExQueryL
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TInt CMPXDbTable::ExecuteSumExQueryL(
+    const TDesC& aQuery, 
+    TUint32 aPlaylistId, 
+    TInt aDrive)
+    {
+    MPX_FUNC("CMPXDbTable::ExecuteSumExQueryL");
+
+    HBufC* query = HBufC::NewLC(aQuery.Length() + KMCIntegerLen);
+    query->Des().Format(aQuery, aPlaylistId);  
+
+    RSqlStatement recordset(iDbManager.ExecuteSelectQueryOnAllDrivesL(aDrive, *query));
+    CleanupClosePushL(recordset);
+
+    TInt sum(0);
+    TInt err(KErrNone);
+    while ((err = recordset.Next()) == KSqlAtRow)
+        {
+        sum += recordset.ColumnInt64(KMPXTableDefaultIndex);
+        }
+    
+    CleanupStack::PopAndDestroy(&recordset);
+    CleanupStack::PopAndDestroy(query);
+
+    if (err != KSqlAtEnd)
+        {
+        User::Leave(KErrCorrupt);
+        }
+
+    return sum;
+    }
+
+// ----------------------------------------------------------------------------
 // CMPXDbTable::ExecuteMediaQueryL
 // ----------------------------------------------------------------------------
 //