--- 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