diff -r c97423828d28 -r a914e47e7a01 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp Mon Feb 22 16:43:34 2010 +0000 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp Sun Mar 14 13:09:18 2010 +0000 @@ -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 // ---------------------------------------------------------------------------- //