comparison SqliteDBLink.cpp @ 88:6e1d4d2fc49b

Prepare size query only once.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Thu, 10 Oct 2013 16:53:06 +0200
parents 9e337bd96bd3
children 7b7a959c993b
comparison
equal deleted inserted replaced
87:9e337bd96bd3 88:6e1d4d2fc49b
32 } 32 }
33 if (!query.exec(QString("SELECT * FROM files;"))) { 33 if (!query.exec(QString("SELECT * FROM files;"))) {
34 throw SQLException("No database"); 34 throw SQLException("No database");
35 } 35 }
36 36
37
38 preparedSizePrefixQuery = new QSqlQuery(db);
39 preparedSizePrefixQuery->prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size");
40
41 preparedSizeQuery = new QSqlQuery(db);
42 preparedSizeQuery->prepare("SELECT * FROM files WHERE size = :size");
43
37 } 44 }
38 45
39 SqliteDBLink::~SqliteDBLink() 46 SqliteDBLink::~SqliteDBLink()
40 { 47 {
48 delete preparedSizePrefixQuery;
49 delete preparedSizeQuery;
41 db.close(); 50 db.close();
42 } 51 }
43 52
44 bool SqliteDBLink::exists(const QString& path) 53 bool SqliteDBLink::exists(const QString& path)
45 { 54 {
199 } 208 }
200 209
201 const QList<FileDBLink::dbinf_ptr_t> 210 const QList<FileDBLink::dbinf_ptr_t>
202 SqliteDBLink::filesWithSize(quint64 size, const QString& prefix) const 211 SqliteDBLink::filesWithSize(quint64 size, const QString& prefix) const
203 { 212 {
204 QList<FileDBLink::dbinf_ptr_t > values; 213 QList<dbinf_ptr_t > values;
205 214
206 QSqlQuery query(db); 215 QSqlQuery & query = (prefix.size() > 0) ? *preparedSizePrefixQuery : *preparedSizeQuery;
207 216
208 if (prefix.size() > 0) { 217 if (prefix.size() > 0) {
209 query.prepare("SELECT * FROM files WHERE path LIKE :prefix AND size = :size");
210 query.bindValue(":prefix", QString("%1%").arg(prefix)); 218 query.bindValue(":prefix", QString("%1%").arg(prefix));
211 }
212 else {
213 query.prepare("SELECT * FROM files WHERE size = :size");
214 } 219 }
215 query.bindValue(":size", QString("%1%").arg(size)); 220 query.bindValue(":size", QString("%1%").arg(size));
216 221
217 222
218 if (!query.exec()) { 223 if (!query.exec()) {