Mercurial > dedupe
comparison DBCache.hpp @ 31:bf3dce7fedcb
Remove all references to QDebug
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 06 Sep 2012 19:14:58 +0200 |
| parents | 5d14d8c2c299 |
| children | c978d4a6514d |
comparison
equal
deleted
inserted
replaced
| 30:1072257d2bab | 31:bf3dce7fedcb |
|---|---|
| 4 #include <QtSql/QSqlDatabase> | 4 #include <QtSql/QSqlDatabase> |
| 5 #include <QtSql/QSqlQuery> | 5 #include <QtSql/QSqlQuery> |
| 6 #include <QtSql/QSqlError> | 6 #include <QtSql/QSqlError> |
| 7 #include <QtSql/QSqlRecord> | 7 #include <QtSql/QSqlRecord> |
| 8 | 8 |
| 9 #include <QtCore/QDebug> | 9 |
| 10 #include <QtCore/QStringList> | 10 #include <QtCore/QStringList> |
| 11 #include <QtCore/QVariant> | |
| 11 #include <cassert> | 12 #include <cassert> |
| 12 #include "OrderedPair.hpp" | 13 #include "OrderedPair.hpp" |
| 13 | 14 |
| 14 #include <boost/optional.hpp> | 15 #include <boost/optional.hpp> |
| 15 | 16 |
| 16 #include "ThreadSafeLookup.hpp" | 17 #include "ThreadSafeLookup.hpp" |
| 17 #include "UniqueString.hpp" | 18 #include "UniqueString.hpp" |
| 19 #include "Exception/SQLException.hpp" | |
| 18 | 20 |
| 19 | 21 |
| 20 template<typename T> | 22 template<typename T> |
| 21 struct SQLGenerator | 23 struct SQLGenerator |
| 22 { | 24 { |
| 251 QString createQuery = QString("CREATE TABLE %1(%2, %3);").arg(dictName).arg(keyFields).arg(valueFields); | 253 QString createQuery = QString("CREATE TABLE %1(%2, %3);").arg(dictName).arg(keyFields).arg(valueFields); |
| 252 QSqlQuery query(db); | 254 QSqlQuery query(db); |
| 253 query.exec(createQuery); | 255 query.exec(createQuery); |
| 254 } | 256 } |
| 255 if (!db.tables().contains(dictName)) { | 257 if (!db.tables().contains(dictName)) { |
| 256 qDebug()<<"No database"; | 258 throw SQLException("No databaase"); |
| 257 exit(1); | |
| 258 } | 259 } |
| 259 if (memoryMapped) { | 260 if (memoryMapped) { |
| 260 QString keyFields = SQLGenerator<Key>::fieldName("key"); | 261 QString keyFields = SQLGenerator<Key>::fieldName("key"); |
| 261 QString valueFields = SQLGenerator<Value>::fieldName("value"); | 262 QString valueFields = SQLGenerator<Value>::fieldName("value"); |
| 262 QString repopulateQuery = QString("SELECT %1, %2 FROM %3;").arg(keyFields).arg(valueFields).arg(dictName); | 263 QString repopulateQuery = QString("SELECT %1, %2 FROM %3;").arg(keyFields).arg(valueFields).arg(dictName); |
| 263 QSqlQuery query(db); | 264 QSqlQuery query(db); |
| 264 if (!query.exec(repopulateQuery)) { | 265 if (!query.exec(repopulateQuery)) { |
| 265 qDebug() << query.lastError() << repopulateQuery; | 266 throw SQLException(query); |
| 266 } | 267 } |
| 267 while (query.next()) { | 268 while (query.next()) { |
| 268 Key key = *SQLGenerator<Key>::extract(query, "key"); | 269 Key key = *SQLGenerator<Key>::extract(query, "key"); |
| 269 Value value = *SQLGenerator<Value>::extract(query, "value"); | 270 Value value = *SQLGenerator<Value>::extract(query, "value"); |
| 270 memoryMap.insert(key, value); | 271 memoryMap.insert(key, value); |
| 287 foreach(Key key, unsyncedKeys) { | 288 foreach(Key key, unsyncedKeys) { |
| 288 values << *memoryMap.value(key); | 289 values << *memoryMap.value(key); |
| 289 } | 290 } |
| 290 SQLGenerator<Value>::bindValues(insertQuery, values, "value"); | 291 SQLGenerator<Value>::bindValues(insertQuery, values, "value"); |
| 291 if (!insertQuery.exec()) { | 292 if (!insertQuery.exec()) { |
| 292 qDebug() << insertQuery.lastError() << insertQuery.lastQuery(); | 293 throw SQLException(insertQuery); |
| 293 } | 294 } |
| 294 insertQuery.finish(); | 295 insertQuery.finish(); |
| 295 unsyncedKeys.clear(); | 296 unsyncedKeys.clear(); |
| 296 } | 297 } |
| 297 | 298 |
| 322 .arg(SQLGenerator<Key>::restriction("key")); | 323 .arg(SQLGenerator<Key>::restriction("key")); |
| 323 QSqlQuery query(db); | 324 QSqlQuery query(db); |
| 324 query.prepare(queryString); | 325 query.prepare(queryString); |
| 325 SQLGenerator<Key>::bindValue(query, key, "key"); | 326 SQLGenerator<Key>::bindValue(query, key, "key"); |
| 326 if (!query.exec()) { | 327 if (!query.exec()) { |
| 327 qDebug() << query.lastError() << queryString; | 328 throw SQLException(query); |
| 328 } | 329 } |
| 329 query.next(); | 330 query.next(); |
| 330 return SQLGenerator<Value>::extract(query, "value"); | 331 return SQLGenerator<Value>::extract(query, "value"); |
| 331 } | 332 } |
| 332 } | 333 } |
| 342 } | 343 } |
| 343 else { | 344 else { |
| 344 SQLGenerator<Key>::bindValue(insertQuery, key, "key"); | 345 SQLGenerator<Key>::bindValue(insertQuery, key, "key"); |
| 345 SQLGenerator<Value>::bindValue(insertQuery, value, "value"); | 346 SQLGenerator<Value>::bindValue(insertQuery, value, "value"); |
| 346 if (!insertQuery.exec()) { | 347 if (!insertQuery.exec()) { |
| 347 qDebug() << insertQuery.lastError() << insertQuery.lastQuery(); | 348 throw SQLException(insertQuery); |
| 348 } | 349 } |
| 349 insertQuery.finish(); | 350 insertQuery.finish(); |
| 350 } | 351 } |
| 351 | 352 |
| 352 } | 353 } |
