--- a/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp Tue Aug 31 15:24:25 2010 +0300
+++ b/tzservices/tzloc/src/TzLocalizationDbAccessor.cpp Wed Sep 01 12:24:48 2010 +0100
@@ -103,21 +103,29 @@
{
//Database file doesn't exist. Attempt to create a new one.
error = iLocalizedTimeZoneDb.Create(iDbsSession,KTzLocalizationDbName,KTzLocalizationDbSecurityPolicy);
- User::LeaveIfError(error);
-
- //Check whether tables exist and create them if they do not
- if (!IsTableCreatedL(KCZTableName))
- {
- User::LeaveIfError(CreateFrequentlyUsedZoneTableL());
- }
- if (!IsTableCreatedL(KUCTableName))
- {
- User::LeaveIfError(CreateUserCityTableL());
- }
- }
+ if (error == KErrNone)
+ {
+ User::LeaveIfError(CreateFrequentlyUsedZoneTableL());
+ User::LeaveIfError(CreateUserCityTableL());
+ }
+ }
+ User::LeaveIfError(error);
+ // Check if both tables are created.
+ CDbColSet *colSet = NULL;
+ TRAP(error, colSet = iLocalizedTimeZoneDb.ColSetL(KCZTableName));
+ delete colSet;
+ if (error)
+ {
+ User::LeaveIfError(CreateFrequentlyUsedZoneTableL());
+ }
+ TRAP(error, colSet = iLocalizedTimeZoneDb.ColSetL(KUCTableName));
+ delete colSet;
+ if (error)
+ {
+ User::LeaveIfError(CreateUserCityTableL());
+ }
}
-
/**
Destructor
Closes the database tables, the database and the database session
@@ -309,24 +317,3 @@
User::LeaveIfError(iZoneView.EvaluateAll());
}
-TBool CTzLocalizationDbAccessor::IsTableCreatedL(const TDesC& aTableName) const
- {
- TBool result = EFalse;
- CDbTableNames* tableNames = iLocalizedTimeZoneDb.TableNamesL();
- CleanupStack::PushL(tableNames);
- if(tableNames)
- {
- const TInt count = tableNames->Count();
- for(TInt i = 0; i < count; i++)
- {
- if((*tableNames)[i] == aTableName)
- {
- result = ETrue;
- break;
- }
- }
- }
- CleanupStack::PopAndDestroy(tableNames);
- return result;
- }
-