Changeset 456:77cd886d8136 in SMSSender


Ignore:
Timestamp:
Nov 18, 2014 5:59:59 PM (7 years ago)
Author:
Sämy Zehnder <saemy.zehnder@…>
Branch:
default
amend_source:
480124c60886697196ef5f898d4af2272d79d366
Message:

Adds S_ASSERT_EXEC that executes given query and also prints the SQL error in
case of an error.

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • common/persistence/idatabase.h

    r449 r456  
    2424#include "common/global.h"
    2525#include "common/utils/status.h"
     26
     27// Executes given query and asserts that it is successful.
     28#define _S_ASSERT_EXEC(query, sql) \
     29    { \
     30        if (!query.exec(sql)) { \
     31            qCritical() << query.lastError().text(); \
     32            S_ASSERT(false); \
     33        } \
     34    }
     35#define _S_ASSERT_EXEC_1(query) _S_ASSERT_EXEC(query,)
     36#define GET_3RD_ARG(arg1, arg2, arg3, ...) arg3
     37#define S_ASSERT_EXEC(...) \
     38    GET_3RD_ARG(__VA_ARGS__, _S_ASSERT_EXEC, _S_ASSERT_EXEC_1)(__VA_ARGS__)
    2639
    2740namespace Persistence {
  • frontend/persistence/pers_accountmanager.cpp

    r446 r456  
    5858                  "  WHERE (accountId = :accountId); ");
    5959    query.bindValue(":accountId", accountId);
    60     S_ASSERT(query.exec());
     60    S_ASSERT_EXEC(query);
    6161
    6262    if (!query.next()) {
     
    109109
    110110    QSqlQuery query(database());
    111     S_ASSERT(query.exec("SELECT accountId "
    112                         "  FROM t_accounts;"));
     111    S_ASSERT_EXEC(query, "SELECT accountId "
     112                         "  FROM t_accounts;");
    113113
    114114    while (query.next()) {
     
    141141        query.bindValue(":accountName", account->name());
    142142        query.bindValue(":gatewayName", account->gateway()->name());
    143         S_ASSERT(query.exec());
     143        S_ASSERT_EXEC(query);
    144144
    145145        // Set the accountId
     
    148148                      "  WHERE (name = :accountName); ");
    149149        query.bindValue(":accountName", account->name());
    150         S_ASSERT(query.exec() && query.next());
     150        S_ASSERT_EXEC(query);
     151        S_ASSERT(query.next());
    151152
    152153        account->setId(query.value(0).toInt());
     
    160161        query.bindValue(":gatewayName", account->gateway()->name());
    161162        query.bindValue(":accountId", account->id());
    162         S_ASSERT(query.exec());
     163        S_ASSERT_EXEC(query);
    163164    }
    164165
     
    191192                  "  WHERE (accountId = :accountId); ");
    192193    query.bindValue(":accountId", accountId);
    193     S_ASSERT(query.exec());
     194    S_ASSERT_EXEC(query);
    194195
    195196    return trans.commit();
  • frontend/persistence/pers_contactmanager.cpp

    r446 r456  
    4949                  "  WHERE (contactId = :contactId);");
    5050    query.bindValue(":contactId", contactId);
    51     S_ASSERT(query.exec());
     51    S_ASSERT_EXEC(query);
    5252
    5353    if (!query.next()) {
     
    7979
    8080    QSqlQuery query(database());
    81     S_ASSERT(query.exec("SELECT contactId "
    82                         "  FROM t_contacts; "));
     81    S_ASSERT_EXEC(query, "SELECT contactId "
     82                         "  FROM t_contacts; ");
    8383
    8484    while (query.next()) {
     
    109109        query.bindValue(":name", contact->name());
    110110        query.bindValue(":number", contact->number().toString());
    111         S_ASSERT(query.exec());
     111        S_ASSERT_EXEC(query);
    112112
    113113        // Set the contactId
     
    116116                   "  WHERE (name = :name)");
    117117        query.bindValue(":name", contact->name());
    118         S_ASSERT(query.exec() && query.next());
     118        S_ASSERT_EXEC(query);
     119        S_ASSERT(query.next());
    119120
    120121        contact->setId(query.value(0).toInt());
     
    128129        query.bindValue(":number", contact->number().toString());
    129130        query.bindValue(":contactId", contact->id());
    130         S_ASSERT(query.exec());
     131        S_ASSERT_EXEC(query);
    131132    }
    132133
     
    171172                  "  WHERE (contactId = :contactId); ");
    172173    query.bindValue(":contactId", contactId);
    173     S_ASSERT(query.exec());
     174    S_ASSERT_EXEC(query);
    174175
    175176    return trans.commit();
  • frontend/persistence/pers_groupmanager.cpp

    r446 r456  
    5050                  "  WHERE (groupId = :groupId); ");
    5151    query.bindValue(":groupId", groupId);
    52     S_ASSERT(query.exec());
     52    S_ASSERT_EXEC(query);
    5353
    5454    if (!query.next()) {
     
    8585
    8686    QSqlQuery query(database());
    87     S_ASSERT(query.exec("SELECT groupId "
    88                         "  FROM t_groups;"));
     87    S_ASSERT_EXEC(query, "SELECT groupId "
     88                         "  FROM t_groups;");
    8989
    9090    while (query.next()) {
     
    114114                      "  VALUES (:name);");
    115115        query.bindValue(":name", group->name());
    116         S_ASSERT(query.exec());
     116        S_ASSERT_EXEC(query);
    117117
    118118        // Set the groupId since it is undefined if the group was not saved before.
     
    121121                      "  WHERE (name = :name);");
    122122        query.bindValue(":name", group->name());
    123         S_ASSERT(query.exec() && query.next());
     123        S_ASSERT_EXEC(query);
     124        S_ASSERT(query.next());
    124125
    125126        group->setId(query.value(0).toInt());
     
    131132        query.bindValue(":name", group->name());
    132133        query.bindValue(":groupId", group->id());
    133         S_ASSERT(query.exec());
     134        S_ASSERT_EXEC(query);
    134135    }
    135136#ifdef FRONTEND_GUI
     
    178179                  "  WHERE (groupId = :groupId); ");
    179180    query.bindValue(":groupId", groupId);
    180     S_ASSERT(query.exec());
     181    S_ASSERT_EXEC(query);
    181182
    182183    return trans.commit();
  • gateways/Schoolnet/persistence/deepthought/deepthoughtstorage.cpp

    r448 r456  
    4949    query.prepare("SELECT id FROM t_question WHERE (id = :id)");
    5050    query.bindValue(":id", question.id());
    51     S_ASSERT(query.exec());
     51    S_ASSERT_EXEC(query);
    5252
    5353    if (query.next()) {
     
    7070    query.bindValue(":eventTarget", question.eventTarget());
    7171    query.bindValue(":language", question.language());
    72     S_ASSERT(query.exec());
     72    S_ASSERT_EXEC(query);
    7373
    7474    // Loads old answer ids.
     
    7878                  "  WHERE (questionId = :questionId);");
    7979    query.bindValue(":questionId", question.id());
    80     if (!query.exec()) throw query;
     80    S_ASSERT_EXEC(query);
    8181    while (query.next()) {
    8282        oldAnswerIds.insert(query.value(0).toString());
     
    9696        query.bindValue(":questionId", question.id());
    9797        query.bindValue(":id", answerId);
    98         S_ASSERT(query.exec());
     98        S_ASSERT_EXEC(query);
    9999    }
    100100
     
    111111    query.bindValue(":id", answer.id());
    112112    query.bindValue(":questionId", answer.question()->id());
    113     S_ASSERT(query.exec());
     113    S_ASSERT_EXEC(query);
    114114
    115115    if (query.next()) {
     
    132132    query.bindValue(":correct", answer.isCorrect());
    133133    query.bindValue(":deepThought", answer.doesDeepThoughtKnowCorrectness());
    134     S_ASSERT(query.exec());
     134    S_ASSERT_EXEC(query);
    135135
    136136    return util::StatusOk();
     
    145145                  "  WHERE (id = :id);");
    146146    query.bindValue(":id", questionId);
    147     S_ASSERT(query.exec());
     147    S_ASSERT_EXEC(query);
    148148
    149149    return trans.commit();
     
    152152QList<Question *> DeepThoughtStorage::loadQuestionList() {
    153153    QSqlQuery query(database());
    154     S_ASSERT(query.exec("SELECT id FROM t_question"));
     154    S_ASSERT_EXEC(query, "SELECT id FROM t_question");
    155155
    156156    QList<Question *> questions;
     
    172172                  "  WHERE (id = :id);");
    173173    query.bindValue(":id", questionId);
    174     S_ASSERT(query.exec());
     174    S_ASSERT_EXEC(query);
    175175
    176176    if (!query.next()) {
     
    201201                       "WHERE (questionId = :questionId); ");
    202202    query.bindValue(":questionId", question->id());
    203     S_ASSERT(query.exec());
     203    S_ASSERT_EXEC(query);
    204204
    205205    QList<Answer *> answers;
     
    227227    query.bindValue(":questionId", question->id());
    228228    query.bindValue(":id", answerId);
    229     S_ASSERT(query.exec());
     229    S_ASSERT_EXEC(query);
    230230
    231231    if (!query.next()) {
     
    267267    query.bindValue(":account", account.username());
    268268    query.bindValue(":questionId", question.id());
    269     S_ASSERT(query.exec());
     269    S_ASSERT_EXEC(query);
    270270
    271271    return query.next()
     
    286286    query.bindValue(":questionId", question.id());
    287287    query.bindValue(":status", status);
    288     S_ASSERT(query.exec());
     288    S_ASSERT_EXEC(query);
    289289}
    290290
     
    294294    QSqlQuery query(database());
    295295
    296     S_ASSERT(query.exec("SELECT lastrun "
    297                         "  FROM t_lastrun "
    298                         "  ORDER BY lastrun DESC "
    299                         "  LIMIT 1"));
     296    S_ASSERT_EXEC(query, "SELECT lastrun "
     297                         "  FROM t_lastrun "
     298                         "  ORDER BY lastrun DESC "
     299                         "  LIMIT 1");
    300300
    301301    QDateTime lastRun;
     
    313313    query.prepare("INSERT INTO t_lastrun (lastrun) VALUES (:lastrun);");
    314314    query.bindValue(":lastrun", lr);
    315     S_ASSERT(query.exec());
     315    S_ASSERT_EXEC(query);
    316316    query.clear();
    317317
     
    319319    query.prepare("DELETE FROM t_lastrun WHERE (lastrun < :lastrun);");
    320320    query.bindValue(":lastrun", lr);
    321     S_ASSERT(query.exec());
     321    S_ASSERT_EXEC(query);
    322322}
    323323
Note: See TracChangeset for help on using the changeset viewer.