-rw-r--r-- | libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp index 6aaa14c..f684f8c 100644 --- a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp +++ b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp | |||
@@ -639,25 +639,25 @@ UIDArray OPimContactAccessBackend_SQL::queryByExample ( const UIDArray& uidlist, | |||
639 | + queryStr.replace(QRegExp("\\*"),"%") + "'" + ")"; | 639 | + queryStr.replace(QRegExp("\\*"),"%") + "'" + ")"; |
640 | else | 640 | else |
641 | searchQuery += " (\"" + *it + "\"" + " GLOB " + "'" | 641 | searchQuery += " (\"" + *it + "\"" + " GLOB " + "'" |
642 | + queryStr + "'" + ")"; | 642 | + queryStr + "'" + ")"; |
643 | 643 | ||
644 | } | 644 | } |
645 | } | 645 | } |
646 | 646 | ||
647 | delete endDate; | 647 | delete endDate; |
648 | 648 | ||
649 | // The following if line is a replacement for | 649 | // The following if line is a replacement for |
650 | // if ( searchQuery.endsWith( "AND" ) ) | 650 | // if ( searchQuery.endsWith( "AND" ) ) |
651 | if ( searchQuery.findRev( "AND" ) == ( searchQuery.length() - 3 ) ){ | 651 | if ( searchQuery.findRev( "AND" ) == static_cast<int>( searchQuery.length() - 3 ) ){ |
652 | odebug << "remove AND" << oendl; | 652 | odebug << "remove AND" << oendl; |
653 | searchQuery.remove( searchQuery.length()-3, 3 ); // Hmmmm.. | 653 | searchQuery.remove( searchQuery.length()-3, 3 ); // Hmmmm.. |
654 | } | 654 | } |
655 | 655 | ||
656 | } | 656 | } |
657 | 657 | ||
658 | // Now compose the complete query | 658 | // Now compose the complete query |
659 | QString qu = "SELECT uid FROM addressbook WHERE " + uid_query; | 659 | QString qu = "SELECT uid FROM addressbook WHERE " + uid_query; |
660 | 660 | ||
661 | if ( !datediff_query.isEmpty() && !searchQuery.isEmpty() ){ | 661 | if ( !datediff_query.isEmpty() && !searchQuery.isEmpty() ){ |
662 | // If we use DateDiff, we have to intersect two queries. | 662 | // If we use DateDiff, we have to intersect two queries. |
663 | qu = datediff_query + QString( " INTERSECT " ) + qu + searchQuery; | 663 | qu = datediff_query + QString( " INTERSECT " ) + qu + searchQuery; |
@@ -864,24 +864,30 @@ UIDArray OPimContactAccessBackend_SQL::sorted( const UIDArray& ar, bool asc, int | |||
864 | case OPimContactAccess::SortNickname: | 864 | case OPimContactAccess::SortNickname: |
865 | query += " \"Nickname\""; | 865 | query += " \"Nickname\""; |
866 | break; | 866 | break; |
867 | case OPimContactAccess::SortAnniversary: | 867 | case OPimContactAccess::SortAnniversary: |
868 | query += " \"Anniversary\""; | 868 | query += " \"Anniversary\""; |
869 | break; | 869 | break; |
870 | case OPimContactAccess::SortBirthday: | 870 | case OPimContactAccess::SortBirthday: |
871 | query += " \"Birthday\""; | 871 | query += " \"Birthday\""; |
872 | break; | 872 | break; |
873 | case OPimContactAccess::SortGender: | 873 | case OPimContactAccess::SortGender: |
874 | query += " \"Gender\""; | 874 | query += " \"Gender\""; |
875 | break; | 875 | break; |
876 | case OPimContactAccess::SortBirthdayWithoutYear: | ||
877 | query += " substr(\"Birthday\", 6, 10)"; | ||
878 | break; | ||
879 | case OPimContactAccess::SortAnniversaryWithoutYear: | ||
880 | query += " substr(\"Anniversary\", 6, 10)"; | ||
881 | break; | ||
876 | default: | 882 | default: |
877 | query += " \"Last Name\""; | 883 | query += " \"Last Name\""; |
878 | } | 884 | } |
879 | 885 | ||
880 | if ( !asc ) | 886 | if ( !asc ) |
881 | query += " DESC"; | 887 | query += " DESC"; |
882 | 888 | ||
883 | 889 | ||
884 | odebug << "sorted query is: " << query << "" << oendl; | 890 | odebug << "sorted query is: " << query << "" << oendl; |
885 | 891 | ||
886 | OSQLRawQuery raw( query ); | 892 | OSQLRawQuery raw( query ); |
887 | OSQLResult res = m_driver->query( &raw ); | 893 | OSQLResult res = m_driver->query( &raw ); |