locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp
changeset 30 96df3ab41000
parent 26 f3533f6eae3f
child 31 8db05346071b
--- a/locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp	Fri Jun 11 13:33:47 2010 +0300
+++ b/locationdataharvester/locationdatalookupdb/locationdatalookupdb.cpp	Wed Jun 23 18:07:15 2010 +0300
@@ -67,7 +67,11 @@
                                              "icontype int,"
                                              "iconpath varchar(255),"
                                              "maptile varchar(255))");
-
+    
+    
+    query.exec("create table if not exists lplookupaddress ("
+                                             "sourceid int,"
+                                             "address varchar(255))");
     mDb->close();
 }
 
@@ -165,6 +169,21 @@
         QVariant var = query.lastInsertId();
         aLookupItem.mId = var.toInt();
         
+        if(aLookupItem.mSourceType==ESourceCalendar)
+        {
+            query.prepare("INSERT INTO lplookupaddress ("
+                    "sourceid ,"
+                    "address )"
+                    "VALUES ("
+                    ":sourceid, "
+                    ":address) " );
+            
+            query.bindValue(":sourceid", aLookupItem.mSourceUid);
+            query.bindValue(":address", aLookupItem.mSingleLineAddress);
+            query.exec();       
+                    
+        }
+        
     }
 }
 
@@ -216,7 +235,21 @@
         query.addBindValue( aLookupItem.mSourceType );
     
         query.exec();
+        
+        if(aLookupItem.mSourceType==ESourceCalendar)
+        {
+            query.prepare("UPDATE lplookupaddress SET "
+                        "address = ? "
+                        "WHERE sourceid = ? ");
+            
+           
+            query.addBindValue( aLookupItem.mSingleLineAddress);
+            query.addBindValue( aLookupItem.mSourceUid);
+            query.exec();       
+                    
+        }
     }
+    
 }
 
 // ---------------------------------------------------------
@@ -287,6 +320,17 @@
         query.addBindValue( aLookupItem.mId );
     
         query.exec();
+        
+        if(aLookupItem.mSourceType==ESourceCalendar)
+        {
+            query.prepare("UPDATE lplookupaddress SET "
+                          "address = ? " 
+                        "WHERE sourceid = ?");
+                     
+            query.addBindValue( aLookupItem.mSingleLineAddress);
+            query.addBindValue( aLookupItem.mSourceUid );
+            query.exec();     
+        }
     }
 }
 
@@ -305,6 +349,15 @@
         query.addBindValue( aLookupItem.mSourceType );
     
         query.exec();
+        
+        if(aLookupItem.mSourceType==ESourceCalendar)
+        {
+            query.prepare( "DELETE FROM lplookupaddress "
+                                   "WHERE sourceid = ? " );                
+            query.addBindValue( aLookupItem.mSourceUid );
+            query.exec();
+        }
+        
     }
 }
 
@@ -432,6 +485,9 @@
     }
 }
 
+// ---------------------------------------------------------
+// LocationDataLookupDb::getEntfillLookupEntryries()
+// ---------------------------------------------------------
 void LocationDataLookupDb::fillLookupEntry( QSqlQuery &aQuery, QLookupItem &aLookupItem )
 {
     QSqlRecord rec = aQuery.record();
@@ -454,4 +510,156 @@
 
 }
 
+// ---------------------------------------------------------
+// LocationDataLookupDb::getAddressDetails()
+// ---------------------------------------------------------
+QString LocationDataLookupDb::getAddressDetails( quint32 mId , quint32 mSourceType )
+{
+    QString addressDetails;
+    if (mDbOpen)
+    {
+        QSqlQuery query(*mDb);
+        if (mSourceType == ESourceContactsPref || mSourceType
+                == ESourceContactsWork || mSourceType == ESourceContactsHome)
+        {
+            query.prepare("SELECT * FROM lplookup "
+                "WHERE sourceid = ? AND sourcetype = ?");
+            query.addBindValue(mId);
+            query.addBindValue(mSourceType);
+            query.exec();
+            if (query.first()) {
+                QSqlRecord rec = query.record();
+                QString temp;
+                temp.clear();
+                temp = query.value(rec.indexOf("street")).toString();
+                if (!temp.isEmpty()) 
+                {
+                    addressDetails.append(temp);
+                }
+                temp.clear();
+
+                temp = query.value(rec.indexOf("city")).toString();
+                if (!temp.isEmpty()) {
+                    if (!addressDetails.isEmpty()) 
+                    {
+                        addressDetails.append(QChar(','));
+                        addressDetails.append(QChar(' '));
+                    }
+                    addressDetails.append(temp);
+
+                }
+                temp.clear();
+                temp = query.value(rec.indexOf("state")).toString();
+                if (!temp.isEmpty()) {
+                    if (!addressDetails.isEmpty()) 
+                    {
+                        addressDetails.append(QChar(','));
+                        addressDetails.append(QChar(' '));
+                    }
+                    addressDetails.append(temp);
+
+                }
+                temp.clear();
+                temp = query.value(rec.indexOf("country")).toString();
+                if (!temp.isEmpty()) {
+                    if (!addressDetails.isEmpty()) 
+                    {
+                        addressDetails.append(QChar(','));
+                        addressDetails.append(QChar(' '));
+                    }
+                    addressDetails.append(temp);
+
+                }
+
+            }
+
+        }
+        else if (mSourceType == ESourceCalendar)
+        {
+            query.prepare("SELECT * FROM lplookupaddress "
+                "WHERE sourceid = ? ");
+            query.addBindValue(mId);
+            query.exec();
+            if ( query.first() )
+            {
+                QSqlRecord rec = query.record();
+                addressDetails.append(
+                        query.value(rec.indexOf("address")).toString());
+            }
+        }
+    }
+    return addressDetails;
+}
+
+// ---------------------------------------------------------
+// LocationDataLookupDb::getCount()
+// ---------------------------------------------------------
+void LocationDataLookupDb::getCount( QList<int>& aCount, const quint32 /*aCollectionId*/ )
+{
+    if( mDb )
+     {
+         //   ESourceLandmarksContactsCat 
+         {
+             QSqlQuery query(*mDb);
+             query.prepare( "SELECT * FROM lplookup " 
+                     "WHERE sourcetype = ? OR sourcetype = ? OR sourcetype = ?" );
+             query.addBindValue( ESourceContactsPref );
+             query.addBindValue( ESourceContactsWork );
+             query.addBindValue( ESourceContactsHome );
+             query.exec();
+             
+             
+             qDebug("size %d",query.size());         
+             int count=0;
+             while( query.next() )  count++;
+             aCount.append(count);
+         }
+             
+
+         
+      //   ESourceLandmarksCalendarCat
+         {
+             QSqlQuery query(*mDb);
+             query.prepare( "SELECT * FROM lplookup " 
+                     "WHERE sourcetype = ?" );
+             query.addBindValue( ESourceCalendar );
+             query.exec();
+             
+             qDebug("size %d",query.size());             
+             int count=0;
+             while( query.next() )  count++;
+             aCount.append(count);
+         }
+         
+         
+         
+     //    ESourceLandmarks
+         {
+             QSqlQuery query(*mDb);
+             query.prepare( "SELECT * FROM lplookup " 
+                     "WHERE sourcetype = ?" );
+             query.addBindValue( ESourceLandmarks );
+             query.exec();
+             
+             qDebug("size %d",query.size());
+             int count=0;
+             while( query.next() )  count++;
+             aCount.append(count);
+         }
+             
+         
+    //     else // all contents
+         {
+             QSqlQuery query(*mDb);
+             query.prepare( "SELECT * FROM lplookup" );
+             query.exec();
+             int count=0;
+             while( query.next() )  count++;
+             aCount.append(count);
+         }
+         
+    
+    }
+}
+
 // End of file