diff -r fc3225a0ab43 -r 332e7bf3b42f tzservices/tzloc/src/TzLocalizationDbAccessor.cpp --- a/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp Tue May 11 16:22:38 2010 +0300 +++ b/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp Tue May 25 12:52:36 2010 +0300 @@ -99,7 +99,28 @@ User::LeaveIfError(iDbsSession.Connect()); //Attempt to open the database TInt error = iLocalizedTimeZoneDb.Open(iDbsSession,KTzLocalizationDbName,KTzLocalizationDbSecurityPolicy); + if (error == KErrNotFound) + { + //Database file doesn't exist. Attempt to create a new one. + error = iLocalizedTimeZoneDb.Create(iDbsSession,KTzLocalizationDbName,KTzLocalizationDbSecurityPolicy); + if (error == KErrNone) + { + User::LeaveIfError(CreateFrequentlyUsedZoneTableL()); + User::LeaveIfError(CreateUserCityTableL()); + } + } User::LeaveIfError(error); + // Check if both tables are created. + TRAP(error, iLocalizedTimeZoneDb.ColSetL(KCZTableName)); + if (error) + { + User::LeaveIfError(CreateFrequentlyUsedZoneTableL()); + } + TRAP(error, iLocalizedTimeZoneDb.ColSetL(KUCTableName)); + if (error) + { + User::LeaveIfError(CreateUserCityTableL()); + } } /**