author | eilers <eilers> | 2004-04-10 17:13:14 (UTC) |
---|---|---|
committer | eilers <eilers> | 2004-04-10 17:13:14 (UTC) |
commit | 096b94bf150d2f3a2ef9a26940871ee7ffa58bdf (patch) (side-by-side diff) | |
tree | c5cab0e19edc9aed9f8367a720619532ddac669c /libopie2/opiepim/backend | |
parent | 4113636e53922f292477ca3f97035a624cf0450b (diff) | |
download | opie-096b94bf150d2f3a2ef9a26940871ee7ffa58bdf.zip opie-096b94bf150d2f3a2ef9a26940871ee7ffa58bdf.tar.gz opie-096b94bf150d2f3a2ef9a26940871ee7ffa58bdf.tar.bz2 |
Some fixes to the namespace using.
the first test implementation of regexp-search for addressbook (disabled)
-rw-r--r-- | libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp index 3142f75..bb5c99b 100644 --- a/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp +++ b/libopie2/opiepim/backend/ocontactaccessbackend_sql.cpp @@ -578,62 +578,87 @@ QArray<int> OPimContactAccessBackend_SQL::queryByExample ( const OPimContact &qu } } } // Skip trailing "AND" // if ( isAnyFieldSelected ) // qu = qu.left( qu.length() - 4 ); qu += searchQuery; qDebug( "queryByExample query: %s", qu.latin1() ); // Execute query and return the received uid's OSQLRawQuery raw( qu ); OSQLResult res = m_driver->query( &raw ); if ( res.state() != OSQLResult::Success ){ QArray<int> empty; return empty; } QArray<int> list = extractUids( res ); return list; } -QArray<int> OPimContactAccessBackend_SQL::matchRegexp( const QRegExp &r ) const +QArray<int> OPimContactAccessBackend_SQL::matchRegexp( const QRegExp &r ) const { +#if 1 QArray<int> nix(0); return nix; + +#else + QString qu = "SELECT uid FROM addressbook WHERE ("; + QString searchlist; + + QStringList fieldList = OPimContactFields::untrfields( false ); + // QMap<QString, int> translate = OPimContactFields::untrFieldsToId(); + for ( QStringList::Iterator it = ++fieldList.begin(); it != fieldList.end(); ++it ){ + if ( !searchlist.isEmpty() ) + searchlist += " OR "; + searchlist += "\"" + *it + "\" rlike(\"" + r.pattern() + "\") "; + } + + qu = qu + searchlist + ")"; + + qDebug( "query: %s", qu.latin1() ); + + OSQLRawQuery raw( qu ); + OSQLResult res = m_driver->query( &raw ); + + return extractUids( res ); + + +#endif } const uint OPimContactAccessBackend_SQL::querySettings() { return OPimContactAccess::IgnoreCase - || OPimContactAccess::WildCards - || OPimContactAccess::DateDiff - || OPimContactAccess::DateYear - || OPimContactAccess::DateMonth - || OPimContactAccess::DateDay + | OPimContactAccess::WildCards + | OPimContactAccess::DateDiff + | OPimContactAccess::DateYear + | OPimContactAccess::DateMonth + | OPimContactAccess::DateDay ; } bool OPimContactAccessBackend_SQL::hasQuerySettings (uint querySettings) const { /* OPimContactAccess::IgnoreCase, DateDiff, DateYear, DateMonth, DateDay * may be added with any of the other settings. IgnoreCase should never used alone. * Wildcards, RegExp, ExactMatch should never used at the same time... */ // Step 1: Check whether the given settings are supported by this backend if ( ( querySettings & ( OPimContactAccess::IgnoreCase | OPimContactAccess::WildCards | OPimContactAccess::DateDiff | OPimContactAccess::DateYear | OPimContactAccess::DateMonth | OPimContactAccess::DateDay // | OPimContactAccess::RegExp // | OPimContactAccess::ExactMatch ) ) != querySettings ) return false; // Step 2: Check whether the given combinations are ok.. |