diff -r 82baf59ce8dd -r ecf06a08d4d9 mpserviceplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp --- a/mpserviceplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp Fri Apr 16 14:56:30 2010 +0300 +++ b/mpserviceplugins/mpxsqlitedbcommon/src/mpxdbtable.cpp Mon May 03 12:29:20 2010 +0300 @@ -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 // ---------------------------------------------------------------------------- //