tzservices/tzloc/src/TzLocalizationDbAccessor.cpp
branchRCL_3
changeset 9 332e7bf3b42f
parent 0 2e3d3ce01487
child 15 312d2b433792
--- 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());
+		}
 	}
 
 /**