Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4efa3afe

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID 4efa3afe6465870cf8732e1f840bffeac921460a
  • Vorgänger ea09b5be
  • Nachfolger 87739ae0

bugfix

Unterschiede anzeigen:

samples/example/Example.pro
unix:!macx:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../build-EntityManager-Desktop-Debug -lCuteEntityManager
else:unix:!macx:CONFIG(release, release|debug): LIBS += -L$$PWD/../../../build-EntityManager-Desktop-Release/ -lCuteEntityManager
unix:INCLUDEPATH += $$PWD/../../src
unix:DEPENDPATH += $$PWD/../../src
CONFIG += c++14
QMAKE_CXXFLAGS += -std=c++14
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../build-EntityManager-Desktop-Release/release/ -lCuteEntityManager
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../build-EntityManager-Desktop-Debug/debug/ -lCuteEntityManager
win32:INCLUDEPATH += $$PWD/../../../build-EntityManager-Desktop-Debug/debug
win32:DEPENDPATH += $$PWD/../../../build-EntityManager-Desktop-Debug/debug
INCLUDEPATH += $$PWD/../../src
DEPENDPATH += $$PWD/../../src
......
QMAKE_CXXFLAGS += -Wall -Wextra -Wmaybe-uninitialized -Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override -Wunsafe-loop-optimizations -pedantic -Wfloat-equal -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -O -Winit-self
}
win32-g++ {
CONFIG += c++11
QMAKE_CXXFLAGS += -std=c++11 -Wall
}
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG_OUTPUT
src/querybuilder.cpp
QVariant pk = attributes.value(primaryKey);
attributes.remove(primaryKey);
QSqlQuery q = this->database->getQuery("UPDATE " + this->schema->quoteTableName(
tableName) + " SET " + this->attributes(attributes) + " " + this->whereKeyword()
tableName) + " SET " + this->attributes(attributes,
false) + " " + this->whereKeyword()
+ " " +
this->schema->quoteColumnName(primaryKey) + " = " + this->placeHolder(
primaryKey) + ";");
......
if (m.size() == 0 || (ignoreID && m.contains(primaryKey) && m.size() == 1)) {
return "";
}
return (withKeyword ? " WHERE " : "") + this->attributes(m, conjunction,
return (withKeyword ? " WHERE " : "") + this->attributes(m, true, conjunction,
ignoreID, primaryKey);
}
QString QueryBuilder::attributes(const QHash<QString, QVariant> &m,
QString QueryBuilder::attributes(const QHash<QString, QVariant> &m, bool select,
const QString &conjunction,
bool ignoreID, const QString &primaryKey) const {
QString rc = "";
......
if (!rc.isEmpty()) {
rc += " " + conjunction + " ";
}
rc += this->schema->quoteColumnName(i.key()) + (i.value().isNull() ? " is null"
rc += this->schema->quoteColumnName(i.key()) + (i.value().isNull()
&& select ? " is null"
: "=" + this->placeHolder(i.key()));
}
}
src/querybuilder.h
const QString &conjunction,
bool ignoreID = false, const QString &primaryKey = "id",
bool withKeyword = true) const;
QString attributes(const QHash<QString, QVariant> &m,
QString attributes(const QHash<QString, QVariant> &m, bool select=true,
const QString &conjunction = ",",
bool ignoreID = false, const QString &primaryKey = "id") const;
QHash<QString, QVariant> saveAttributes(const QSharedPointer<Entity> &entity,

Auch abrufbar als: Unified diff