Changeset c7b58d4 for src/sql/sqlengine.cpp
- Timestamp:
- 01/25/10 14:05:23 (13 years ago)
- Branches:
- master, qt5
- Children:
- 1deea3b
- Parents:
- 7620de0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sql/sqlengine.cpp
r7620de0 rc7b58d4 307 307 } 308 308 309 int SqlEngine::searchEvent(int aConferenceId, const Q List<QString> &aColumns, const QString &aKeyword)309 int SqlEngine::searchEvent(int aConferenceId, const QHash<QString,QString> &aColumns, const QString &aKeyword) 310 310 { 311 311 QSqlDatabase db = QSqlDatabase::database(); … … 321 321 // INSERT 322 322 QString query = QString("INSERT INTO SEARCH_EVENT ( xid_conference, id) " 323 "SELECT xid_conference, id FROM EVENT " 324 "WHERE xid_conference = %1 AND (").arg( aConferenceId ); 325 int i = 0; 326 foreach (QString str, aColumns){ 327 query += QString("%1 LIKE '\%%2\%' OR ").arg( aColumns.at(i++), aKeyword ); 323 "SELECT EVENT.xid_conference, EVENT.id FROM EVENT "); 324 if( aColumns.contains("ROOM") ){ 325 query += "INNER JOIN EVENT_ROOM ON (EVENT.xid_conference = EVENT_ROOM.xid_conference AND EVENT.id = EVENT_ROOM.xid_event ) "; 326 query += "INNER JOIN ROOM ON ( EVENT_ROOM.xid_room = ROOM.id ) "; 327 } 328 if( aColumns.contains("PERSON") ){ 329 query += "INNER JOIN EVENT_PERSON ON (EVENT.xid_conference = EVENT_PERSON.xid_conference AND EVENT.id = EVENT_PERSON.xid_event ) "; 330 query += "INNER JOIN PERSON ON ( EVENT_PERSON.xid_person = PERSON.id ) "; 331 } 332 query += QString("WHERE EVENT.xid_conference = %1 AND (").arg( aConferenceId ); 333 334 foreach (QString table, aColumns.uniqueKeys()){ 335 foreach (QString column, aColumns.values(table)){ 336 query += QString("%1.%2 LIKE '\%%3\%' OR ").arg( table, column, aKeyword ); 337 } 328 338 } 329 339 query.chop( QString(" OR ").length() );
Note: See TracChangeset
for help on using the changeset viewer.