diff -r 2a40e88564c8 -r 13afc0e517bd mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp --- 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 // ---------------------------------------------------------------------------- //