tzservices/tzloc/src/TzLocalizationDbAccessor.cpp
branchRCL_3
changeset 20 c2c61fdca848
parent 19 924385140d98
--- 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;	 
- 	} 
-