Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d568923d

Von Christian Ehringfeld vor etwa 9 Jahren hinzugefügt

  • ID d568923d44b6f1f608722a170f216ff6de81d07c
  • Vorgänger 1e213c09
  • Nachfolger f53f7740

example compiles, persisting of entities without relations works, added
debug output for queries

Unterschiede anzeigen:

src/database.cpp
} else {
rc = this->exec(query);
}
qDebug() << "Executed Query:" << query;
return rc;
}
......
bool Database::transaction(QSqlQuery &query) {
this->database.transaction();
query.exec();
this->debugQuery(query);
if (!this->database.commit()) {
this->database.rollback();
return false;
......
for (int var = 0; var < queries.size(); ++var) {
q = queries.at(var);
q.exec();
this->debugQuery(q);
}
if (!this->database.commit()) {
this->database.rollback();
......
return true;
}
bool Database::exec(QString query) {
bool Database::exec(const QString &query) {
this->database.transaction();
QSqlQuery q = QSqlQuery(this->database);
q.exec(query);
this->debugQuery(q);
if (!this->database.commit()) {
this->database.rollback();
return false;
......
bool ok = true;
for (int var = 0; var < queries.size() && ok; ++var) {
ok = q.exec(queries.at(var));
this->debugQuery(q);
if (!ok) {
break;
}
......
return ok;
}
bool Database::exec(QSqlQuery query) {
return query.exec();
bool Database::exec(QSqlQuery &query) {
bool ok = query.exec();
this->debugQuery(query);
return ok;
}
bool Database::exec(QList<QSqlQuery> queries) {
......
for (int var = 0; var < queries.size() && ok; ++var) {
q = queries.at(var);
ok = q.exec();
this->debugQuery(q);
if (!ok) {
break;
}
......
return ok;
}
void Database::debugQuery(const QSqlQuery &query) const {
qDebug() << query.executedQuery();
}
bool Database::select(QSqlQuery &query) {
query.setForwardOnly(true);
return query.exec();
bool ok = query.exec();
this->debugQuery(query);
return ok;
}
QSqlQuery Database::select(const QString &query) {
QSqlQuery q = QSqlQuery(this->database);
q.exec(query);
this->debugQuery(q);
return q;
}

Auch abrufbar als: Unified diff