diff -r 000000000000 -r c53acadfccc6 metadataengine/server/src/mdssqldbmaintenance.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataengine/server/src/mdssqldbmaintenance.cpp Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,91 @@ +/* +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: SQL database startup routines* +*/ + +// INCLUDE FILES +#include "mdssqldbmaintenance.h" +#include "mdccommon.h" +#include "mdspreferences.h" + +// ========================= MEMBER FUNCTIONS ================================== + +CMdSSqlDbMaintenance* CMdSSqlDbMaintenance::NewL() + { + CMdSSqlDbMaintenance* self = CMdSSqlDbMaintenance::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +CMdSSqlDbMaintenance* CMdSSqlDbMaintenance::NewLC() + { + CMdSSqlDbMaintenance* self = new ( ELeave ) CMdSSqlDbMaintenance(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +void CMdSSqlDbMaintenance::ConstructL( ) + { + } + +CMdSSqlDbMaintenance::CMdSSqlDbMaintenance() + { + } + +CMdSSqlDbMaintenance::~CMdSSqlDbMaintenance() + { + } + +TBool CMdSSqlDbMaintenance::ValidateL( ) + { + _LIT( KValidateTableExistence, "SELECT COUNT(*) FROM MdE_Preferences;" ); + + RMdsStatement validationQuery; + CleanupClosePushL( validationQuery ); + RRowData emptyRowData; + CleanupClosePushL( emptyRowData ); + CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL(); + TRAPD( test, connection.ExecuteQueryL( KValidateTableExistence, validationQuery, emptyRowData ) ); + CleanupStack::PopAndDestroy( 2, &validationQuery ); + return ( test == KErrNone ); + } + + +void CMdSSqlDbMaintenance::CreateDatabaseL() + { + _LIT( KCreateTblMdE_Preferences, // Table for metadata engine use + "CREATE TABLE MdE_Preferences(Key TEXT,Value NONE,ExtraValue LARGEINT,UNIQUE(Key,Value));"); + + _LIT( KCreateTblMdS_Medias, // Table for metadata engine use + "CREATE TABLE MdS_Medias(MediaId INTEGER PRIMARY KEY,Drive INTEGER,PresentState INTEGER,Time LARGEINT);"); + + RRowData emptyRowData; + CleanupClosePushL( emptyRowData ); + + // Create ontology tables + CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL(); + + connection.ExecuteL( KCreateTblMdE_Preferences, emptyRowData ); + + connection.ExecuteL( KCreateTblMdS_Medias, emptyRowData ); + + TInt majorVersion = KMdSServMajorVersionNumber; + TInt64 minorVersion = KMdSServMinorVersionNumber; + MMdsPreferences::InsertL( KMdsDBVersionName, MMdsPreferences::EPreferenceBothSet, + majorVersion, minorVersion ); + + CleanupStack::PopAndDestroy( &emptyRowData ); + } +