From 34d112062c7c316d2c1744e54fb8e43ad201b29f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 14 Nov 2019 14:46:44 +0100 Subject: [PATCH] add function for UPDATE, needs to be edited --- src/serversdk/databaseutils.cpp | 32 ++++++++++++++++++++++++++++++++ src/serversdk/databaseutils.h | 3 +++ 2 files changed, 35 insertions(+) diff --git a/src/serversdk/databaseutils.cpp b/src/serversdk/databaseutils.cpp index 5de8838..57e2180 100644 --- a/src/serversdk/databaseutils.cpp +++ b/src/serversdk/databaseutils.cpp @@ -141,6 +141,38 @@ QSqlQuery DatabaseUtils::insertIntoTable(const DatabaseTable *table, const QStri return res; } +QSqlQuery DatabaseUtils::updateTable(const DatabaseTable *table, const QString table_name) const +{ + QString columnsAndValues; + + // tepmporary, for edit ( add one more parameter to func sth like QList with conditions + QString conditions; + conditions = "id = :id"; + + QVariantMap valueMap = table->toVariantMap(); + + + auto keys = valueMap.keys(); + for (auto key : keys) { + if (!columnsAndValues.isEmpty()) { + columnsAndValues += ", "; + } + columnsAndValues += key + "= :" + key; + } + + QSqlQuery query(mDatabaseManager->database()); + QString queryText = QString("UPDATE %1 SET %2 WHERE %3 );").arg(table_name).arg(columnsAndValues).arg(conditions); + query.prepare(queryText); + + for (auto key : keys ) { + auto value = valueMap.value(key); + query.bindValue(":"+key, value); + } + + QSqlQuery res = mDatabaseManager->executeQuery(query); + return res; +} + QList> DatabaseUtils::listMapFromQuery(QSqlQuery query) const { diff --git a/src/serversdk/databaseutils.h b/src/serversdk/databaseutils.h index 58572f5..125441d 100644 --- a/src/serversdk/databaseutils.h +++ b/src/serversdk/databaseutils.h @@ -22,6 +22,9 @@ public: QSqlQuery createTable(const DatabaseTable *table, const QString table_name) const; QSqlQuery insertIntoTable(const DatabaseTable *table, const QString table_name) const; + + QSqlQuery updateTable(const DatabaseTable *table, const QString table_name) const; + QList> listMapFromQuery(QSqlQuery query) const; QString sqlType() const;