diff -r bdd9da0d70fe -r 1f1dad4af8f8 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp Wed Sep 15 12:09:46 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp Wed Oct 13 14:28:40 2010 +0300 @@ -229,10 +229,12 @@ // transforms SQL error to KErrNotReady if( (err <= KSqlErrGeneral && err >= KSqlErrNotDb) || err == KSqlErrStmtExpired ) { + MPX_DEBUG2("CMPXDbManager::DoBeginL - KErrNotReady, err=%d", err); User::Leave(KErrNotReady); } else { + MPX_DEBUG2("CMPXDbManager::DoBeginL, err=%d", err); User::LeaveIfError(err); } } @@ -2856,18 +2858,6 @@ #endif //__RAMDISK_PERF_ENABLE } -// --------------------------------------------------------------------------- -// CMPXDbManager::ExecuteSelectQueryL -// --------------------------------------------------------------------------- -// -EXPORT_C RSqlStatement CMPXDbManager::ExecuteSelectQueryL( const TDesC& aQuery ) - { - MPX_FUNC("CMPXDatabase::ExecuteSelectQueryL( const TDesC& aQuery )"); - HBufC* tmp( aQuery.AllocLC() ); - RSqlStatement statement( ExecuteSelectQueryOnAllDrivesL( tmp->Des() ) ); - CleanupStack::PopAndDestroy(tmp); - return statement; - } // --------------------------------------------------------------------------- // CMPXDbManager::EnsureDiskSpaceL @@ -3101,4 +3091,56 @@ return filename; } +// ---------------------------------------------------------------------------- +// Recreate a specified database file. Delete physical file first and then +// recreate it +// ---------------------------------------------------------------------------- +// +EXPORT_C void CMPXDbManager::RecreateDatabaseFileL( + TInt aDrive) + { + MPX_FUNC("CMPXDbManager::RecreateDatabaseFileL"); + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL aDrive=%d", aDrive); + + TInt index = KErrNotFound; + + if (aDrive == EDriveC) + { + index = iDatabaseHandles.Count(); + } + else + { + TInt count(iDatabaseHandles.Count()); + for (TInt i = 0; i < count; ++i) + { + if ( iDatabaseHandles[i].iDrive == aDrive ) + { + index = i; + break; + } + } + } + if ( index >= 0 ) + { + TInt delErr = BaflUtils::DeleteFile(iFs, + *iDatabaseHandles[index].iOrigFullFilePath); + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL DeleteFile delErr=%d", delErr); + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL, iTargetFullFilePath = %s", + iDatabaseHandles[index].iTargetFullFilePath); + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL, iOrigFullFilePath = %s", + iDatabaseHandles[index].iOrigFullFilePath); + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL, index = %d", index); + + User::LeaveIfError( delErr ); + + DoCreateDatabaseL( aDrive ); + } + else + { + MPX_DEBUG2("CMPXDbManager::RecreateDatabaseFileL index = %d", index); + User::Leave(KErrNotFound); + } + } + + // End of File