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 }